错误(100):参数与可以更新的任何字段都不匹配

时间:2015-04-16 12:32:31

标签: php facebook facebook-graph-api curl

我试图通过我的脚本将Facebook页面状态发布为页面(而不是用户)。这会给我一个错误100。

这里我使用权限生成来自Graph Explorer的临时user_access_token:manage_pages,publish_pages

代码:

<?php
    $url='https://graph.facebook.com/v2.3/{$user_id}/accounts?access_token=USER_ACCESS_TOKEN';
    $ch=curl_init();
    CURL_SETOPT($ch,CURLOPT_URL,$url);
    CURL_SETOPT($ch,CURLOPT_RETURNTRANSFER, 1);
    $json=json_decode(curl_exec($ch));

    $page_access_token=$json->data['0']->access_token;
    curl_close($ch);

    $page_id='xxx';
    $message='helloworld';
    $url="https://graph.facebook.com/v2.3/{$page_id}?access_token=$page_access_token"; 
    $curl = curl_init();
    curl_setopt($curl, CURLOPT_URL, $url);
    curl_setopt($curl, CURLOPT_POST, true);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_POSTFIELDS, $message);
    curl_setopt($curl, CURLOPT_TIMEOUT, 10);

    $result = json_decode(curl_exec($curl));
    var_dump($result);

 ?>

如果一切顺利的话,一个字符串&#34; helloworld&#34;应该在Facebook页面上发布。但在这里它返回时出现错误:

object(stdClass)#5 (1) {
  ["error"]=>
  object(stdClass)#6 (3) {
    ["message"]=>
    string(61) "(#100) Parameters do not match any fields that can be updated"
    ["type"]=>
    string(14) "OAuthException"
    ["code"]=>
    int(100)
  }
}

这里有什么错误?谢谢。

1 个答案:

答案 0 :(得分:8)

您正试图发布到/<PAGE_ID>

在页面上创建帖子的正确终点是/<PAGE_ID>/feed,在此处记录:https://developers.facebook.com/docs/graph-api/reference/v2.3/page/feed

创建帖子的基本调用的有效格式为https://graph.facebook.com/v2.3/<PAGE_ID>/feed?message=helloworld&access_token=<ACCESS_TOKEN>