【问题标题】:"message": "Unsupported post request. Object with ID does not exist, cannot be loaded due to missing permissions"message": "不支持的发布请求。ID 的对象不存在,由于缺少权限而无法加载
【发布时间】:2016-12-12 19:20:43
【问题描述】:

我在 facebook 上有两个应用程序。一方面,我可以进行 API 调用。另一方面,我不能。 我检查了配置,设置是一样的。 你能帮帮我吗?

示例:https://graph.facebook.com/860599774051206/?access_token=APP_ID|APP_SECRET

https://graph.facebook.com/860599774051206/notifications?template=@[860599774051206]test&access_token=APP_ID|APP_SECRET&method=post

错误是:

{ "error": { "message": "不支持的发布请求。带有 ID 的对象 '860599774051206' 不存在,因缺失无法加载 权限,或不支持此操作。请阅读图表 developer.facebook.com/docs/graph-api 上的 API 文档", “类型”:“GraphMethodException”,“代码”:100,“fbtrace_id”: “BRW7BqFeEER”} }

【问题讨论】:

  • 你能在这里贴一些代码吗?
  • 嗨。问题是与 facebook 的 api 的调用。如果我在应用程序中使用此调用它可以工作,在另一个应用程序中不起作用。我相信问题是 Facebook 应用程序中的一个设置,但我不明白这个设置
  • 不支持的 GET/POST 请求几乎总是意味着您使用了错误的 ID(请记住,用户 ID 是应用范围内的!),或者没有必要的权限。
  • 嗨,id 是正确的,这是我在 facebook 上的 id。我用 php sdk 测试了 api。 [代码] $fb = new Facebook\Facebook([ 'app_id' => '7593****', 'app_secret' => '16a010c95****', ]); $fb->setDefaultAccessToken('75930***|16a010c95eaa***'); $res = $fb->get('/860***'); print_r($res);死(); [/code] 致命错误:未捕获的异常 'Facebook\Exceptions\FacebookAuthenticationException' 带有消息'不支持的获取请求。 ID 的对象不存在,由于缺少权限而无法加载,或不支持此操作。

标签: facebook facebook-graph-api


【解决方案1】:

已解决: 任何应用都可以更改 user_id

在一个应用中,user_id 是 962084030569446,在另一个应用中是 860599774051206

谢谢大家。

【讨论】:

    【解决方案2】:

    就我而言 - 我必须使用 app-id 来获取使用 me/accounts 的页面列表。

    一旦我确定了要向其发布消息的页面,我必须使用页面 ID 来提供 page-id/feed。

    这解决了问题。

    例如:

        $response = $fb->get('/me/accounts', (string)$selBehRow1["fb_app_access_token"]);
        foreach ($response->getDecodedBody() as $allPages) 
        {
            foreach ($allPages as $page ) 
            {               
                if (isset($page['id']) && $page['id'] == $selBehRow1['fb_page_id'])
                { // Suppose you save it as this variable
                    $appAccessToken = (string) $page['access_token'];
                    break;
                }
            }
        }
    
        $response = $fb->post(
            //this is wrong: '/'.$selBehRow1["fb_app_id"].'/feed',
            '/'.$selBehRow1["fb_page_id"].'/feed',
            array(
                "message" => "$msg",
                "link" => "$link",
                //"picture" => "http://www.example.net/images/example.png",
                "name" => "$name",
                "caption" => "$caption",
                "description" => "$description"
            ),
            $appAccessToken
        );
    }
    

    【讨论】:

      【解决方案3】:

      虽然与我认为我会贡献的 OP 问题无关,但在发布到离线事件端点 https://graph.facebook.com/v2.8/<business_id>/events 时出现此错误。我已经从 node.js 应用程序成功发布,然后在我们的 Linnworks 订单管理系统中将该方法移植到 .Net 实现时,出现此错误。

      原来,我打错了表单数据中的 access_token 参数,即

      System.Collections.Specialized.NameValueCollection formFields = new System.Collections.Specialized.NameValueCollection();
      formFields.Add("accessToken", accessToken);
      formFields.Add("upload_tag", "store_data");
      formFields.Add("data", data);
      

      应该是:

      System.Collections.Specialized.NameValueCollection formFields = new System.Collections.Specialized.NameValueCollection();
      formFields.Add("access_token", accessToken);
      formFields.Add("upload_tag", "store_data");
      formFields.Add("data", data);
      

      以这种方式错误地获取 access_token 字段会导致此“具有 ID 的对象不存在”,这有点像红鲱鱼。我猜想,一旦没有提供 access_token 值,我们的帐户中就无法枚举任何对象,因为请求没有进行身份验证以提供权限,因此“找不到对象”

      (您不必使用 NameValueCollection,这只是我使用此处建议的多部分发布实现 Upload files with HTTPWebrequest (multipart/form-data) 的副产品)

      【讨论】:

        【解决方案4】:

        我认为 post_id 是错误的,你可以检查一次 https://graph.facebook.com/860599774051206_4548643168486465/?access_token=APP_ID|APP_SECRET

        https://developers.facebook.com/docs/graph-api/reference/v3.3/object/comments

        使用此 api 回复帖子

        Method: POST
        https://graph.facebook.com/860599774051206_4548643168486465/comments?access_token=APP_ID|APP_SECRET
        body:
        {
        "message": "Thanks"
        }
        

        【讨论】:

          【解决方案5】:

          您需要使用 GET 请求而不是 POST。看文档

          【讨论】:

          • 哪些文档?
          【解决方案6】:

          我在尝试从页面向用户发布回复时遇到了这个问题。我使用了图形 API me/accounts 并获得了页面列表。从那里我检索到我要发布响应的页面的 access_token。我得到了问题中提到的相同错误。

          对我来说,问题是我应该响应的用户帐户由于安全原因被锁定。这是我尝试登录时从 facebook 收到的错误 您目前无法使用 Facebook

          这是我在发布 api 调用时遇到的错误

          {
              "error": {
                  "message": "Unsupported post request. Object with ID 'xxx' does not exist, cannot be loaded due to missing permissions, or does not support this operation. Please read the Graph API documentation at https://developers.facebook.com/docs/graph-api",
                  "type": "GraphMethodException",
                  "code": 100,
                  "error_subcode": 33,
                  "fbtrace_id": "yyy"
              }
          }
          

          一旦解决了帐户安全问题,问题就解决了。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2018-10-20
            • 1970-01-01
            • 2022-10-19
            • 1970-01-01
            • 2018-10-13
            • 1970-01-01
            • 2012-08-07
            • 1970-01-01
            相关资源
            最近更新 更多