0

我正试图让我的应用程序发布到朋友的墙上。我尝试使用 FB.api 方法,但我发现使用该方法已被禁用。

然后我尝试使用 FB.ui 提要对话框,但后来我发现 message 参数已被弃用,并被删除,因为 facebook 希望其用户输入文本。即使用户输入文本,消息也永远不会发布到该用户的墙上。

因此,在做了更多研究之后,我发现另一个选择是创建自定义操作类型。在这样做的过程中,我发现要采用这种方法,我的应用程序需要一个应用程序访问令牌。

所以我尝试使用以下方法:

FB.api('https://graph.facebook.com/oauth/access_token','get',
{client_id:'XXXXXXX', client_secret:'XXXXXXXXXXX', grant_type:'client_credentials'},
function(response) {
});

这与文档中的内容没有任何不同:

GET https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID
       &client_secret=YOUR_APP_SECRET
       &grant_type=client_credentials

我收到如下错误:

'Uncaught ReferenceError: XXXXXXXXXXXXXXXXXXXXX is not defined' 当我使用

Ext.data.JsonP.request({
url : 'https://graph.facebook.com/oauth/access_token',
params : {
 client_id : 'XXXXXXXXXXXXXXXXXXXX',
 client_secret : 'XXXXXXXXXXXXXXXXXXXXX',
 grant_type : 'client_credentials'
},
success : function(response, opts) {
},
failure : function(response, opts) {
}

});

或者

{type : 'http', message : 'unknown error'} 当我使用

FB.api('https://graph.facebook.com/oauth/access_token','get',
{client_id:'XXXXXXX', client_secret:'XXXXXXXXXXX', grant_type:'client_credentials'},
function(response) {
});

现在文档说当我执行以下操作时:

GET https://graph.facebook.com/oauth/access_token?
        client_id=YOUR_APP_ID
       &client_secret=YOUR_APP_SECRET
       &grant_type=client_credentials

我应该在我的响应对象中得到以下内容:

access_token=YOUR_APP_ACCESS_TOKEN

现在从我所做的看来我已经遵循了文档的方向,但我的问题是为什么我没有得到文档所说的正确输出?

请帮忙。

4

1 回答 1

0

FB.api从 graph.facebook.com 端点工作,因此您无需graph.facebook.com显式添加。

我现在不在电脑前,但我认为电话更像

FB.api('oauth/access_token'

虽然我不确定 FB.api 是否接受纯文本响应,但我相信它是为 JSON 响应而设计的。

以后检查您的浏览器开发工具,看看您通过 JS SDK 实际执行了什么 HTTP GET

于 2013-05-20T02:58:37.807 回答