错误社交验证4.4 ::无效的范围:publish_stream。

时间:2015-05-29 06:43:21

标签: android facebook social-authentication

当我尝试连接SOCIAL AUTH 4.4来整合FACEBOOK API IN ANDROID时出现此错误。

几天后,一切正常,我可以从我的应用程序将数据发布到Facebook。

现在我在尝试从我的应用程序访问Facebook时遇到此错误。

  

无效的范围:offline_access,publish_stream。这条消息只是   向开发者展示。您应用的用户将忽略这些权限   如果存在的话请阅读文档以获取有效权限:   https://developers.facebook.com/docs/facebook-login/permissions

阅读完文档后,我才知道,不允许使用权限offline_access和publish_stream,因此无法再请求权限。

所以我根据文档替换了我的属性文件。

publish_stream可以被publish_actions取代,offline_access也不见了。

喜欢以下:::

#facebook
graph.facebook.com.consumer_key = XXXXXXXXXXXXX
graph.facebook.com.consumer_secret = XXXXXXXXXXXXXXXXXXXXXXXXXXX
graph.facebook.com.custom_permission = publish_actions,email,user_birthday,user_location

我仍然遇到同样的问题。我到底错过了什么..

3 个答案:

答案 0 :(得分:3)

在这里查看我的答案:

您应该更新到最新版本4.7(https://code.google.com/p/socialauth/)并再次测试。我怀疑权限集也设置在代码中的某个位置。

  

版本4.7中有什么新内容?
  ...
   Facebook API v2.2已更新
  ...

答案 1 :(得分:1)

由于Facebook最近改变了太多的内部设置,最好使用Facebook SDK而不是Social Auth

要开始使用Facebook sdk,您需要在Facebook开发者控制台中创建一个项目,请在下面链接到proceed

创建了一个应用程序,将latest facebook sdk下载并导入到您的项目中

导入后将facebook sdk设置为您的eclipse的库项目

在mainfestifile应用程序代码中添加以下代码

 <meta-data
            android:name="com.facebook.sdk.ApplicationId"
            android:value="@string/facebook_app_id" />

        <activity
            android:name="com.facebook.FacebookActivity"
            android:configChanges="keyboard|keyboardHidden|screenLayout|screenSize|orientation"
            android:theme="@android:style/Theme.Translucent.NoTitleBar" />

其中facebook_app_id是在开发者控制台中创建项目时生成的app id

别忘了包含互联网权限

然后在您的活动中添加以下代码

//需要声明变量

 CallbackManager callbackManager;
    ShareDialog shareDialog;

//在activity oncreate

FacebookSdk.sdkInitialize(getApplicationContext());
     callbackManager = CallbackManager.Factory.create();
     shareDialog = new ShareDialog(this);

//例如,共享在按钮的单击列表中添加以下代码段

ShareLinkContent content = new ShareLinkContent.Builder()
                .setContentUrl(Uri.parse(copyTextToClipBoard()))
                .build();

                shareDialog.show(content);

答案 2 :(得分:0)

我已查看了Socialauth sources,我发现您在属性文件中发生了轻微错误。自定义权限属性应命名为

graph.facebook.com.custom_permissions

不是

graph.facebook.com.custom_permission

(注意最后的s)。我已经在我的项目中尝试了它,它可以解决任何问题。