在指定的个人资料页面上打开Facebook应用

时间:2012-05-28 17:13:33

标签: android facebook android-intent

我试图使用来自SO的一些代码,但它失败了:

这些是uri应该打开应用程序的正确部分。

facebook://facebook.com/info?user=544410940     (id of the user. "patrick.boos" won't work)
facebook://facebook.com/wall?user=544410940   (will only show the info if you have added it as 

我想要的是在我指定的个人资料上打开Facebook应用。这是我尝试的代码。该号码是个人资料的UID。

        String uri = "facebook://facebook.com/wall?user=417079614970109"; 
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
        startActivity(intent);

是折旧还是什么?我现在如何完成这项任务?

7 个答案:

答案 0 :(得分:52)

实际上它看起来像这样。这些URI仅适用于最新版本的facebook应用程序。这就是我们尝试捕获的原因。

public static Intent getOpenFacebookIntent(Context context) {

    try {
        context.getPackageManager()
                .getPackageInfo("com.facebook.katana", 0); //Checks if FB is even installed.
        return new Intent(Intent.ACTION_VIEW,
                Uri.parse("fb://profile/254175194653125")); //Trys to make intent with FB's URI
    } catch (Exception e) {
        return new Intent(Intent.ACTION_VIEW,
                Uri.parse("https://www.facebook.com/arkverse")); //catches and opens a url to the desired page
    }
}

在您的活动中,要打开它,请按以下方式调用它:

Intent facebookIntent = getOpenFacebookIntent(this);
startActivity(facebookIntent);

答案 1 :(得分:11)

这不容易吗? 例如在onClickListener中?

    try{ 

        Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/426253597411506"));
        startActivity(intent);

       }catch(Exception e){

         startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse("http://www.facebook.com/appetizerandroid")));

      }

PS。从http://graph.facebook.com/[userName]

获取您的ID(大号)

答案 2 :(得分:10)

这不再有效

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://profile/someProfile"));

请尝试改为

Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href=https://www.facebook.com/someProfile"));

答案 3 :(得分:2)

目前暂时不可能, Facebook 已删除此功能

答案 4 :(得分:2)

关于此问题有很多疑问,但这段代码对我有用.Facebook改变了政策,所以更多细节请查看这个Facebook官方 GRAPH API EXPLORER PAGE

Intent intent = null;
    try {
        getPackageManager().getPackageInfo("com.facebook.katana", 0);
        String url = "https://www.facebook.com/"+idFacebook;
        intent = new Intent(Intent.ACTION_VIEW, Uri.parse("fb://facewebmodal/f?href="+url));
    } catch (Exception e) {
        // no Facebook app, revert to browser
        String url = "https://facebook.com/"+idFacebook;
        intent = new Intent(Intent.ACTION_VIEW);
        intent .setData(Uri.parse(url));
    }
    this.startActivity(intent);

答案 5 :(得分:1)

要做到这一点,我们需要“Facebook页面ID”,你可以得到它:

  • 从页面转到“关于”。
  • 转到“更多信息”部分。

introducir la descripción de la imagen aquí

要在指定的个人资料页面上打开Facebook应用

你可以这样做:

 String facebookId = "fb://page/<Facebook Page ID>";
  startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookId)));

答案 6 :(得分:0)

对于Facebook页面使用方式如下:http://fb://page/87268309621xxxx 对于个人ID使用方式如下:http://fb://profile/87268309621xxxx