Facebook Graph API: обновление страницы сообщения - PullRequest
0 голосов
/ 08 декабря 2018

Я пытаюсь использовать api graph facebook, чтобы обновить сообщение предыдущего поста.У меня есть исходный идентификатор сообщения и действительный токен доступа для конечного пользователя.Я получаю сообщение об успехе, но сообщение НЕ обновляется.

<CFHTTP METHOD="POST" URL="https://graph.facebook.com/v3.2/#qPost.PostID#?message=#URLEncodedFormat(Message)#&access_token=#AccessToken#" THROWONERROR="YES">
        <cfhttpparam type="header" name="Accept-Encoding" value="*" />
        <cfhttpparam type="header" name="TE" value="deflate;q=0" />     
</CFHTTP>

Сообщение об успехе:

Success Message

Я собираюсь перейти к деталям на графике Facebook здесь (я знаю, что это говорит о разрешении publish_actionsбыл удален), но, безусловно, должен быть способ обновления поста через график api.

https://developers.facebook.com/docs/graph-api/reference/v3.2/post#updating

Также, когда я говорю, я пытаюсь обновить сообщение, в основном текст, который написан в посте (см. изображение)

Text I'm Trying To Update

Ответы [ 2 ]

0 голосов
/ 09 декабря 2018

Я понял это, я не использовал полный postid в моем запросе.Когда исходное сообщение было создано, оно отправляет обратно идентификатор сообщения, который представляет собой комбинацию pageid и postid (с подчеркиванием между ними), он выглядит следующим образом: первая часть - pageidи тот, который после подчеркивания был postid, я только ставил 2-ю часть как postid:

 334797943936653_2003899366299670

Забавно, что я все равно добился бы "успеха", хотя у меня былневерно postid.

0 голосов
/ 09 декабря 2018

В примере документации говорится:

POST /v3.2/post-id HTTP / 1.1
Хост: graph.facebook.com

message = Это + равно ++ тест + сообщение

Итак, message является частью тела POST.Но ваш код отправляет message как часть строки запроса.Решение: Переместите message и access_token к телу.

<cfhttp method="POST" url="https://graph.facebook.com/v3.2/#qPost.PostID#" throwOnError="true">

    <cfhttpparam type="header" name="Accept-Encoding" value="*" />
    <cfhttpparam type="header" name="TE" value="deflate;q=0" />

    <cfhttpparam type="formfield" name="message" value="#Message#" />
    <cfhttpparam type="formfield" name="access_token" value="#AccessToken#" />

</cfhttp>

Кодирование выполняется cfhttpparam автоматически, поэтому сохраняйте читаемый / нужный текст в переменной message.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...