То, что в действительности принимает Facebook в постах, время от времени меняется, и не очень хорошо задокументировано.Учитывая это, я смог создать запись в стене с разрывами строк в сообщении, сделав следующий запрос:
POST https://graph.facebook.com/me/feed?access_token=<token>&message=line+1%0D%0Aline+2
, создав следующую запись на моей стене:
строка1
строка 2
Важная часть заключается в том, чтобы знать, что и где кодируется.Параметр message
в моем запросе API содержит %0D%0A
, что эквивалентно escape-последовательности \r\n
( см. Здесь ).Если используемый вами камень Koala кодирует url-код введенного вами ввода, тогда все, что вам нужно - передать строку с управляющими кодами \r\n
.
Обновление: может быть полезно попробовать сделатьсообщение вручную с помощью программы командной строки.Посмотрите, сможете ли вы заставить его работать с этой командой curl
:
curl 'https://graph.facebook.com/<wall id>?access_token=<access_token>' -d 'message=this+is+line+1%0D%0Athis+is+line+2'
Как обычно, замените идентификатор стены и параметры токена доступа своими собственными (попросите программу Ruby распечатать access_token
, полученную изfacebook).Вы должны увидеть строку JSON в качестве вывода:
{"id":"wallid_postid"}
Где wallid
и postid
- числа.Если вместо этого вы получаете сообщение об ошибке, возможно, существует проблема с правами доступа к Facebook или вашему приложению.
Разрешения : ваше приложение должно иметь разрешение manage_pages
от администратора страницы, есливы публикуете как эту страницу , и пользователь должен войти в ваше приложение и Facebook, когда запрос сделан, если ваше приложение также не запросило разрешение offline_access
.Если пользователь не вошел в систему, вы получите этот ответ:
{"error": {
"type":"GraphMethodException",
"message":"Unsupported post request."
}}