8

(#210) Subject must be a page.即使我使用的是 Page Access Token而不是 App Access Token ,我也会不断收到 OAuthException错误。

我正在使用以下内容:

  1. 来自 facebook 的最新 JavaScript SDK (//connect.facebook.net/en_US/all.js )
  2. /{PAGE_ID}/tabs?app_id={APP_ID}&method=POST&access_token={PAGE_ACCESS_TOKEN}用户登录后使用 FB.api 方法调用。

我的应用程序不是 FBML,而是 Canvas / iFrame 应用程序。我究竟做错了什么?

我研究了包括 Stackoverflow 和其他 facebook 论坛在内的网络,但仍然没有答案。我的应用程序已启用 OAuth。

另外,如果我在浏览器中复制并粘贴链接,它工作正常。如果我使用 API 进行操作,则不会。

4

2 回答 2

5

我终于让它工作了。

但是,我没有使用 FB.api 来调用上面的链接,而是使用了 jQuery。

我使用了 jQuery "$.getJson(url)" 并且它有效。

它的工作原理如下。

如下构建链接。

“https://graph.facebook.com/{PAGE_ID}/tabs?app_id={APP_ID}&method=POST&access_token={PAGE_ACCESS_TOKEN}&callback=?”

如下调用 jQuery 方法。"$.getJSON(pageUrl, OnCallBack);" 其中“OnCallBack”是回调方法。您可以在回叫中做任何您需要的事情。就我而言,它类似于以下内容。

    function OnCallBack(r, s) {

        var html = "";
        if (s == "success" && !r.error) {
            for (p in r) {
                html += p + ": " + r[p] + "<br />";
            }
        } else {
            html = r.error.message;
        }
        $("#dv").html(html);
    }
于 2011-12-08T06:27:24.577 回答
3

对于再次收到此错误的任何人:当我使用 wininet 向https://graph.facebook.com/发布 https 请求时,我收到了相同的错误消息......

我只是将动词从 "POST" 更改为 "GET" ,然后效果很好:

//string strVerb = "POST";
string strVerb = "GET";

PS:变量“strVerb”用作windows函数HttpOpenRequest的第二个参数。

于 2012-07-30T06:38:58.113 回答