我一直在与这个问题作斗争几个小时,我似乎无处可去。所以,我已成功要求用户使用Facebook登录我的Android应用程序。
一旦他们登录,我就会获得访问令牌(字符串值),然后使用它来向Facebook发送请求以获取页面的帖子。以下是我如何完成整个过程。
public void setupFacebook()
{
Session.openActiveSession(this, true, new Session.StatusCallback()
{
// callback when session changes state
@Override
public void call(Session mSession, SessionState state, Exception exception) {
if (mSession.isOpened() && mSession != null)
{
facebookAccessToken = mSession.getAccessToken();
Log.d("ACCESSTOKEN", facebookAccessToken);
fetchPagePosts(facebookAccessToken, mSession);
}
}
});
}
public void fetchPagePosts(String token, Session session)
{
Request.Callback callback = new Request.Callback()
{
@Override
public void onCompleted(Response response)
{
Log.d("RESPONSE", "ERROR"+response.getError());
Log.d("RESPONSE", ""+response);
}
};
String endpoint = String.format("https://graph.facebook.com/"+pageId+"/posts?access_token=%s", facebookAccessToken);
Log.d("ENDPOINT", endpoint);
Request request = new Request(session, endpoint, null, HttpMethod.GET, callback);
RequestAsyncTask task = new RequestAsyncTask(request);
task.execute();
}
这里有趣的部分是,当我从我的Logcat(我称之为端点)复制url并粘贴到我的浏览器时,它完全正常。
当我在平板电脑上运行我的代码时,它会返回 ErrorCode 190 和 HttpStatus 400 。
根据Facebook的文档,它可能是几件事之一;
我被困在这里,因为我在浏览器上测试了相同的URL,它返回了我需要的json数据。它只是在Android代码中运行时失败。
如果有人有任何建议,请帮助我 - 真的很感谢你的帮助。
提前谢谢。
答案 0 :(得分:0)
您可以尝试使用Simple Facebook Android库而不是Facebook SDK https://github.com/sromku/android-simple-facebook,它更简单。