您好我正在尝试添加Facebook连接到我的Android应用程序,我确实设法在我的墙上发布应用程序,但当我下载Android Facebook应用程序并登录它但现在我不能发布在我的墙上。我收到了这个错误:
{"error":{"type":"OAuthException","message":"An active access token
must be used to query information about the current user."}}
CODE:
公共类FacebookLogin扩展了活动{
private static final String APP_API_ID = "080808998-myappId";
Facebook facebook = new Facebook(APP_API_ID);
private AsyncFacebookRunner mAsyncRunner;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mAsyncRunner = new AsyncFacebookRunner(facebook);
SessionStore.restore(facebook, this);
SessionEvents.addAuthListener(new SampleAuthListener());
Log.i("Error", facebook.getAccessToken()+"tokenId");
facebook.dialog(FacebookLogin.this, "feed", new SampleDialogListener());
}
public void postOnWall(String msg) {
try {
Bundle bundle = new Bundle();
bundle.putString("message", msg);
bundle.putString("from", "fromMe");
bundle.putString("link","facebook.com");
bundle.putString("name","name of the link facebook");
bundle.putString("description","some description here");
//bundle.putString(Facebook.TOKEN, accessToken);
bundle.putString("picture", "http://url to image");
String response = facebook.request("me/feed",bundle,"POST");
Log.d("Error", "got response: " + response);
if (response == null || response.equals("") ||
response.equals("false")) {
Log.v("Error", "Blank response");
}
} catch(Exception e) {
e.printStackTrace();
}
} }
我得到的令牌是空的。
答案 0 :(得分:2)
您没有检查会话是否有效 如果没有,那么你必须授权。
您还必须首次登录Facebook才能使用您的应用并授予该应用的权限。
然后您将第一次获得访问令牌。
然后你应该存储你的会话,当再次使用该应用程序时,你不会得到这个错误。
为此,请查看来自Facebook_Android_SDK的示例应用程序LoginButton.java init()方法
注意:在sharedPreferences中存储一个布尔标志,以指示这是否是第一次,
因此,每次使用该应用程序时都不会弹出登录对话框。