获取OAuthException类型的Facebook错误响应

时间:2016-05-26 02:11:49

标签: java facebook restfb facebook4j

我一直在使用下面的代码从我的facebook家中使用restFb api获取数据。

          import java.util.List;

          import com.restfb.Connection;
          import com.restfb.DefaultFacebookClient;
          import com.restfb.FacebookClient;
          import com.restfb.FacebookClient.AccessToken;
          import com.restfb.types.Post;
          import com.restfb.types.User;

          public class restFB_tester {

            public static void main(String[] args) {

                //60 days auth
                String authToken="XXXXXXX";

                FacebookClient fbClient = new DefaultFacebookClient(authToken);     
                Connection<Post> result=fbClient.fetchConnection("me/home",Post.class);

                int counter =0;
                for(List<Post> page :result)
                {
                  for(Post aPost:page)
                  {
                      System.out.println(aPost.getMessage());
                      System.out.println("fb.com/"+aPost.getId());
                      counter++;      
                  }
                }       
                System.out.println("No of Posts : "+counter);
            }

          }

这会引发错误:

  

线程中的异常&#34; main&#34; com.restfb.exception.FacebookOAuthException:收到类型为OAuthException的Facebook错误响应:(#200)需要扩展权限:read_stream(代码200,子代码为null)       at com.restfb.DefaultFacebookClient $ DefaultGraphFacebookExceptionMapper.exceptionForTypeAndMessage(DefaultFacebookClient.java:1186)       at com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:1112)       at com.restfb.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:1053)       在com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:964)       在com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:926)       在com.restfb.DefaultFacebookClient.fetchConnection(DefaultFacebookClient.java:356)       在org.hive.facebook.restFB_tester.main(restFB_tester.java:29)

我一直试图解决这个问题但却找不到运气。 如果我使用&#34; me / feeds&#34;我能够获得数据。 ,它返回用户数据。我尝试在谷歌上找到它并尝试了不同的方法,但没有帮助。我已经在创建令牌时给予了所有权限。

请让我知道我在哪里做错了或者有什么可能解决这个问题。谢谢。

1 个答案:

答案 0 :(得分:-1)

  

请让我知道我在哪里做错了

您使用的是旧代码,显然没有费心去查看当前API版本中可能存在的内容。

https://developers.facebook.com/docs/apps/changelog#v2_4_deprecations

  

他获取了/v2.4/{user_id}/home,GET/v2.4/{user_id}/inbox,以及GET /v2.4/{user_id}/notifications操作以及read_stream,read_mailbox和manage_notifications权限在v2.4中已弃用。

你根本无法获得这些数据。您必须使用/me/feed以及提供的帖子。 (这些是哪些,在文档中提到。)