Facebook Graph API Linebreak - PullRequest
       4

Facebook Graph API Linebreak

4 голосов
/ 20 августа 2011

Я знаю, что есть множество вопросов по этому поводу, но я хотел бы добавить разрывы строк в постах на Facebook, которые публикуются через Graph API. Я видел множество ответов, предлагающих использовать <center></center>, но это не работает для меня - он просто печатает '<center></center>' в посте.

Если быть точным, я использую Ruby и самоцвет Коала. Я пытаюсь опубликовать на странице пользователя 1006 *. Если я публикую ссылку и попробую взломать центр в описании поста, он будет работать как положено, но не в том сообщении, где оно мне действительно нужно. ОБНОВЛЕНИЕ: Я отправил патч для самоцвета Коала, который позволяет установить параметр: no_encoding. Если / когда этот патч будет принят, он разрешит разрывы строк, если для этого параметра установлено значение true. Пока что люди с этой проблемой могут взять мой форк драгоценного камня: https://github.com/ideaoforder/koala

Для тех, кому любопытно, проблема была с Фарадеем. Для метода запроса было задано значение: url_encode, который отправляет параметры в виде данных формы в кодировке URL. Параметры должны отправляться как обычные данные, а не как данные формы (например, с использованием флага -d вместо флага -f в cURL). Мы достигаем этого, отправляя данные как часть строки запроса вместо закодированных параметров.

Ответы [ 2 ]

4 голосов
/ 20 августа 2011

То, что в действительности принимает 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."
}}
2 голосов
/ 30 октября 2012

Я тоже некоторое время боролся с разрывом строки в статусах. Я обнаружил, что вместо вставки разрывов строк в статусе, использование notes дало бы большую гибкость, если бы такой подход мог также удовлетворить желание. Страница Facebook также может иметь собственные заметки. Просто добавьте? Sk = notes в URL вашей учетной записи или страницы, и вы увидите приложение Facebook Notes.

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