当我尝试连接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
(。我在我的项目中尝试过,它在没有任何问题的情况下工作。