首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Facebook Javascript API调用返回需要appsecret_proof参数的错误-但这是客户端

Facebook Javascript API调用返回需要appsecret_proof参数的错误-但这是客户端
EN

Stack Overflow用户
提问于 2015-02-06 11:57:30
回答 1查看 1.8K关注 0票数 3

我正在使用Facebook的Javascript,但它正在返回错误:

来自服务器的API调用需要一个appsecret_proof参数。

我很熟悉为什么它会通过PHP返回这个错误服务器端,但是这是客户端javascript,并且不知道为什么它会返回这个错误。

精简代码如下:

代码语言:javascript
运行
复制
window.fbAsyncInit = function () {
        FB.init({
            appId: [my app id],
            xfbml: true,
            version: 'v2.2'
        });
    };
    (function (d, s, id) {
        var js, fjs = d.getElementsByTagName(s)[0];
        if (d.getElementById(id)) {
            return;
        }
        js = d.createElement(s);
        js.id = id;
        js.src = "//connect.facebook.net/en_US/sdk.js";
        fjs.parentNode.insertBefore(js, fjs);
    }(document, 'script', 'facebook-jssdk'));
FB.login(function (res) {
        if (res.authResponse) {
                if (res.authResponse.grantedScopes.indexOf("manage_pages") >= 0) {
                    FB.api('/me/accounts', function (res) {
                        if (res && !res.error) {
                            /*
                             * Should show pages available for 
                             * the facebook user to manage ...
                             * (code removed)
                             */
                        }
                        else {
                            /*
                             * Instead, shows 'API calls from the 
                             * server require an appsecret_proof
                             * argument" error here
                             */
                            console.log("Error /me/accounts: " + JSON.stringify(res.error));
                        }
                    });
                }

        }
    });

如果我在Facebook设置中关闭了“调用”,这很好,但出于安全原因,我希望这样做。

这不应该通过javascript调用失败--它是客户端API调用,而不是错误消息描述的服务器API调用。

这是Facebook上的一个bug,还是我在某个地方遗漏的东西?

EN

Stack Overflow用户

发布于 2018-03-07 20:25:45

截至2018年2月,这个问题(或类似的问题)似乎再次出现。这里有一个bug报告:

https://developers.facebook.com/bugs/1597942793626594/

也就是说,对于启用了Require 的应用程序来说,在编写appsecret_proof时,似乎无法从appsecret_proof中执行appsecret_proof调用。

其他注释:

文档摘录

当启用该功能时,我们将只允许包含appsecret_proof或来自发出令牌的同一设备的API调用。

但是,在应用程序设置>高级>安全性>要求应用程序秘密中,描述如下:

只允许从服务器调用,并要求应用程序机密或应用程序的秘密证明所有API调用。

相关的bug报告:2016年10月2015年2月

相关帖子:证明论证

票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28365287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档