经过几天的挫折之后,我会请求你的帮助[也道歉,因为我对FB很新)。我有一个Android应用程序正在开发中,它有一个Facebook应用程序ID,密钥,哈希等。我创建了4个测试用户(显然)测试目的,并使所有这些朋友和应用程序的用户。该应用程序设置为v2.3 API。我看到Facebook正在施加越来越多的限制,但我仍然认为我可以做我需要做的事情......
在手机上登录后,在“两步”之后使用简单权限登录然后再询问更多,我最终拥有这些权限:
user_friends
user_posts
manage_pages
publish_pages
publish_actions
public_profile
对于应用程序的(测试)用户,当我查询
时,尚未登录到应用程序且因此尚未授予任何权限/v2.3/{user-id}/feed or /v2.3/{user-id}/posts
我得到一个" 200" (非错误)没有数据的JSON响应,从内存中就是这样的:
{
"data" : [
]
}
与FB docs中给出的文档一致 在哪里说:
如果您尝试从您的应用未被授权访问的Feed中读取数据,则该调用将返回一个空数组。好的,所以这一切都有道理。
然后我从朋友(此时为测试用户)获取消息列表并存储他们的消息ID,看起来他们的形式如下:userid_postid我可以扫描文本,很棒。我使用的API v2.3看起来会在2017年7月关闭,但现在可以使用了。
好的,所以现在我想发布到用户墙或页面或FB称之为的东西 - 我不能再这样做了吗?我接下来试图发布到存储的user_postid的注释,但这失败了:
{HttpStatus: 403, errorCode: 200, errorType: OAuthException, errorMessage: (#200) Permissions error}
我认为我应该有权这样做。我注意到测试用户帖子上没有评论小部件 - 这是问题吗?有些帖子根本没有评论,或者这只是测试用户的功能吗?这是帖子的样子,注意没有显示评论行:
我已经走了很长一段路,并且可以做很多事情(获取帖子,用户图片,使用该应用的朋友 - 尽管有FB的文档),但现在已经陷入困境。任何帮助或指示非常感谢。
编辑,忘记了尝试发布评论的代码:
params.putString("message", someText);
new GraphRequest(
// version 2.3 will work until July 8, 2017
AccessToken.getCurrentAccessToken(),
"/v2.3/" + mFacebookPostId + "/comments",
params,
HttpMethod.POST,
new GraphRequest.Callback() {
public void onCompleted(GraphResponse response) {
mSends++;
FacebookRequestError err = response.getError();
if (err == null || err.getErrorCode() == 0) {
mSendGood++;
}
tv_status.setText("Sent " + mSends + " posts, " + mSendGood + " good");
}
}
).executeAsync();
更新:我应该获得一个'页面访问令牌,再次FB文档不清楚?
答案 0 :(得分:1)
答案似乎是bug with the Facebook Test Users。我不知道自己是否可以做我想做的事情,因为这是我的第一个FB开发,但当我看到Test User的帖子没有评论或类似按钮时,我开始怀疑。
但现在我不确定如何测试此代码,因为真实用户无法在开发模式下使用该应用程序?