RestFB如何订阅webbook

RestFB how to subscribe to webook

我正在尝试复制以下请求(我使用 Facebook 图形浏览器对其进行了详细说明)

POST /{page_id}/subscribed_apps?subscribed_fields=feed,mention

及其随附的页面访问令牌。我从该请求中得到的响应是

{
  "success": true
}

如何使用 RestFB 发出相同的请求?到目前为止,我已经想出了:

FacebookClient client = new DefaultFacebookClient(pageAccessToken, Version.VERSION_8_0);
JsonObject result = client.publish(
    String.format("/%s/%s", pageId, "subscribed_apps"),
    JsonObject.class,
    Parameter.with("subscribed_fields", "feed,mention"));

但我得到的只是:

com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: (#100) Parameters do not match any fields that can be updated (code 100, subcode null) 'null - null'

为了使这更容易和可读,我建议你试试这个代码:

FacebookClient client = ne DefaultFacebookClient(pageAccessToken, Version.LATEST);
GraphResponse result = client.publish("me/subscribed_apps",
     GraphResponse.class, 
     Parameter.with("subscribed_fields","feed,mention"));
if (result.isSuccess()) {
  // do some stuff
}

这样,您就不需要 page id,也不需要 String.format。页面 ID 已连接到页面访问令牌,有时这会带来更好的工作结果。

RestFB 为这种请求提供了一个名为 GraphResponse 的特殊对象。它是一个简单的对象,提供了一些方便的方法。只要您没有得到完整的对象,例如用户或 post,这是更好的方法;)