我是否需要publish_stream范围来删除邀请请求?

时间:2011-12-09 10:19:48

标签: facebook-graph-api scope request

我正在使用FB.ui({method: 'apprequests', ... })让用户邀请他们的朋友加入我的java网络应用。

在Facebook Requests Dialog文档中,它表示我需要在用户接受请求时删除请求:

  

通过单击“请求”将用户定向到您的应用程序   来自应用程序,游戏仪表板或来自请求   通知,您必须在接受请求后删除该请求。   单击后,请求不会自动删除,   因此,开发人员有责任在他们拥有后清除它们   被消耗了。

http://developers.facebook.com/docs/reference/dialogs/requests/#deleting

当我尝试使用RestFB Graph API Java client执行此操作时,我从Facebook获得了权限错误。

代码:

FacebookClient client = new DefaultFacebookClient(appAccessToken,new DefaultWebRequestor(),new DefaultJsonMapper()); client.deleteObject(String.format(“%d_%d”,requestId,facebookUserId));

日志说:

  

(com.restfb.DefaultWebRequestor)INFO:执行POST到   带参数的graph.facebook.com/XXX_XXX(在请求体中发送):   方法=删除&安培; =的access_token XXX&安培;格式= JSON&安培;语言环境= EN_US

错误:

  

Facebook以HTTP状态代码403和响应正文回复:   {“error”:{“message”:“(#200)权限   误差”, “类型”: “OAuthException”}}

我已经尝试了app访问令牌和接收用户的访问令牌,我有范围email和publish_actions。我在某处读到了我可能需要的publish_stream范围。不过,我宁愿不问我的用户是为了能够删除请求吗?或者是其他我做错了什么?

1 个答案:

答案 0 :(得分:1)

如果您使用APP令牌,则不需要publish_stream范围。

如果您使用C#facebook SDK,可以使用:

var fb = new FacebookClient(Config.FacebookAppId, Config.FacebookAppSecret);
var result = fb.Delete(string.Format(
  "{0}_{1}?access_token={2}",
  facebookRequestId,
  facebookUserId,
  fb.AccessToken
));

(另见:Facebook Deleting Requests