20

我正在尝试使用 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);

是贬值还是什么?我现在如何完成这样的任务?

4

7 回答 7

55

实际上它看起来像这样。这些 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);
于 2012-05-28T17:27:41.463 回答
13

这不再有效

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"));
于 2018-01-08T09:26:42.370 回答
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(大数字)

于 2013-06-24T23:03:27.193 回答
2

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

于 2016-12-21T15:01:47.733 回答
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);
于 2017-07-30T10:38:12.913 回答
1

为此,我们需要“Facebook 页面 id”,您可以获取它:

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

水图像介绍

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

你可以这样做:

 String facebookId = "fb://page/<Facebook Page ID>";
  startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(facebookId)));
于 2017-05-10T16:48:51.443 回答
1

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

于 2017-10-28T12:04:27.417 回答