错误Social Auth 4.4::无效作用域:publish_stream



当我尝试连接SOCIAL AUTH 4.4以在ANDROID中集成FACEBOOK API时,出现了此错误。

几天前一切都很好,我可以从我的应用程序将数据发布到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

但我还是遇到了同样的问题。我到底在哪里失踪了。。

看看我的答案:

  • 错误无效作用域:offline_access,publish_stream,当我尝试连接Facebook API时

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

4.7版有什么新功能

Facebook API v2.2已更新

由于Facebook最近更改了太多内部设置,因此最好使用Facebook SDK,而不是社交认证

为了开始使用Facebook sdk,你需要在Facebook开发者控制台中创建一个项目,请参阅下面的链接继续。

一个应用程序是创建下载并导入最新的facebook sdk到您的项目

导入后,将facebooksdk设置为eclipse 的库项目

在您的主要应用程序标签中添加以下代码

 <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是在开发人员控制台中创建项目时生成的应用程序id

不要忘记包括互联网权限

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

//变量需要声明为

 CallbackManager callbackManager;
    ShareDialog shareDialog;

//在创建的活动中

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

//例如,分享在按钮的点击列表中添加以下片段

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

我查看了Socialauth源代码,发现您在属性文件中犯了一个小错误。自定义权限属性应命名为

graph.facebook.com.custom_permissions

而不是

graph.facebook.com.custom_permission

(注意末尾的s(。我在我的项目中尝试过,它在没有任何问题的情况下工作。

最新更新