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

Posted

技术标签:

【中文标题】错误社交身份验证 4.4:: 无效范围:publish_stream。【英文标题】:Error Social Auth 4.4:: Invalid Scopes: publish_stream. 【发布时间】:2015-08-11 22:07:51 【问题描述】:

当我尝试连接 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

我仍然遇到同样的问题。我到底在哪里失踪..

【问题讨论】:

如果您删除了这些权限,您将不会遇到同样的错误。你确定你没有收到不同的错误信息吗? @yes luschn 我收到了同样的错误信息 【参考方案1】:

在这里看看我的答案:

Error Invalid Scopes: offline_access, publish_stream, when I try to connect with Facebook API

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

4.7 版有什么新功能? ...Facebook API v2.2 更新 ...

【讨论】:

我需要在我的项目@Tobi 中保留哪些社交身份验证文件 你认为social auth sdk适用于Java而不是Android 我真的不明白你为什么不使用 Facebook Android SDK。 code.google.com/p/socialauth-android的最后一次更新是2岁。 其实我很久以前就用社交认证安卓适配器做了这个项目。现在我面临这个问题。所以现在我会研究你的建议@Tobi。【参考方案2】:

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

别忘了包括互联网权限

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

//需要声明变量

 CallbackManager callbackManager;
    ShareDialog shareDialog;

//在activity oncreate中

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

//例如分享在按钮的点击列表中添加下面的sn-p

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

                shareDialog.show(content);

【讨论】:

感谢@venkatesh 提供详细描述的答案!让我看看:)【参考方案3】:

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

graph.facebook.com.custom_permissions

不是

graph.facebook.com.custom_permission

(注意末尾的s)。我已经在我的项目中尝试过,它没有任何问题。

【讨论】:

有办法解决这个问题吗? @SWAppDev 对不起,不明白你的问题。你想解决什么问题? 我在使用 socialauth "Invalid Scopes: read_stream." 时遇到此错误。我想知道如何解决它 @SWAppDev 将您的权限集添加到graph.facebook.com.custom_permissions 属性,不包括“read_stream”权限。

以上是关于错误社交身份验证 4.4:: 无效范围:publish_stream。的主要内容,如果未能解决你的问题,请参考以下文章

Rancher v2.4.4 Istio最终用户身份验证错误,与“ RequestAuthentication”类型不匹配]]

错误:psycopg2.IntegrityError:“已修改”列在社交身份验证模块中包含空值?

动态社交媒体按钮 - 减少 http 请求和验证错误

如何在 Java 11 客户端 - MongoDB 4.4 (SSL) 之间进行身份验证?

Node.js E00007 Authorize.net 错误 - 由于身份验证值无效,用户身份验证失败

Microsoft Graph API 身份验证错误:“访问令牌验证失败。无效的受众”