从我的Android应用程序登录Facebook后,无法知道从哪里获取我的AccessToken。下面的代码是我用来登录的,它似乎工作。但是当我想获得朋友列表时,我不知道在哪里可以找到访问令牌。
这是我登录的代码的子集(来自Facebook的开发者网站)。
public class MainActivity extends ActionBarActivity {
...
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FacebookSdk.sdkInitialize(getApplicationContext());
callbackManager = CallbackManager.Factory.create();
loginButton = (LoginButton) findViewById(R.id.login_button);
loginButton.setReadPermissions("user_friends");
LoginManager.getInstance().registerCallback(callbackManager,
new FacebookCallback<LoginResult>() {
@Override
public void onSuccess(LoginResult loginResult) {
Log.d(TAG, "Success!");
}
@Override
public void onCancel() {
Log.d(TAG, "Canceled");
}
@Override
public void onError(FacebookException exception) {
Log.d(TAG, String.format("Error: %s", exception.toString()));
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
callbackManager.onActivityResult(requestCode, resultCode, data);
}
这是我想用来获取我的清单的部分。
GraphRequest request = GraphRequest.newMeRequest(
accessToken,
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(
JSONObject object,
GraphResponse response) {
// Application code
}
});
Bundle parameters = new Bundle();
parameters.putString("fields", "id,name,link");
request.setParameters(parameters);
request.executeAsync();
如何设置变量 accessToken ?
有没有很好的例子可以通过简单的方法实现这一目标?我找到的所有东西对于我的等级看起来都很复杂,并且没有使用更新的sdk(4.1.2就是我所拥有的)但是旧的东西似乎被贬低了。
答案 0 :(得分:1)
Facebook SDK v.4
中有一些变化,例如:
删除了会话 - AccessToken,LoginManager和CallbackManager 类取代并替换Session类中的功能。
访问令牌 - 简而言之,您可以加载AccessToken.getCurrentAccessToken
来自缓存的SDK或应用程序是否从应用程序冷启动
书签。有关说明,请参阅Facebook Login for Android, Get
Current Token。
但您还需要编写一些代码,如链接中所述。
答案 1 :(得分:1)
登录后,使用此代码获取正在使用此应用程序的朋友的朋友列表。
现在Facebook没有提供朋友的完整列表。
GraphRequest.newMyFriendsRequest(AccessToken.getCurrentAccessToken(), new GraphJSONArrayCallback() {
@Override
public void onCompleted(JSONArray objects, GraphResponse response) {
// TODO Auto-generated method stub
try
{
Log.d("Garph Friend ", objects.toString(2));
friendCallback(objects.toString(2));
} catch (JSONException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).executeAndWait();