Android如何打开Facebook应用程序?

时间:2012-10-27 05:36:58

标签: android facebook facebook-graph-api

  

可能重复:
  launch facebook app from other app

我正在做一个android项目,在那个项目中,我需要获得像UserId,AccessToken这样的Facebook用户详细信息。

使用Fcebook SDK完成Facebook集成。

现在,Facebook发布了 URL SCHEME 来打开Facebook应用程序并获取用户详细信息。

我做完了,

long longFacebookUid = Long.parseLong(facebookUid);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity");
intent.putExtra("extra_user_id", facebookUid);
this.startActivity(intent);
return;

在此代码中称为Facebook应用程序,之后我不知道如何获取userId和令牌。

感谢。

1 个答案:

答案 0 :(得分:0)

除了URL SCHEME之外,使用基于SDK的功能更简单。但它可能不是您想要的答案。

备注:以下信息基于facebook-android SDK 2.0(现在可以使用3.0版)

运行授权功能(登录部分)后(以下是facebook文档中的示例代码)

 facebook.authorize(this, new String[] {}, new DialogListener() {
            @Override
            public void onComplete(Bundle values) {
                SharedPreferences.Editor editor = mPrefs.edit();
                editor.putString("access_token", facebook.getAccessToken());
                editor.putLong("access_expires", facebook.getAccessExpires());
                editor.commit();
            }

            @Override
            public void onFacebookError(FacebookError error) {}

            @Override
            public void onError(DialogError e) {}

            @Override
            public void onCancel() {}
        });
    }

要获取访问令牌,只需在SDK 2.0中运行以下功能

即可
String access_token=facebook.getAccessToken();

对于userID

public String GetUserID(){
    Bundle params = new Bundle();
    params.putString("fields", "id");
    String resp= "";
    try {
        resp = facebook.request("me", params, "GET");//call the request function in SDK 2.0, using graph api
    } catch (FileNotFoundException e) {
    } catch (MalformedURLException e) {
    } catch (IOException e) {
    }
    try{
        resp = new JSONObject(resp).getString("id");
    }catch(JSONException e1){
    }
    }
    return resp;
};

我认为这些是获取结果的最简单方法,但不使用URL SCHEME。

我希望它可以帮到你。