簡體   English   中英

Facebook Graph API Linebreak

[英]Facebook Graph API Linebreak

我知道有很多關於此問題的問題 - 但我想在通過Graph API發布的Facebook牆上帖中添加換行符。 我已經看到了各種建議使用<center></center>的答案,但這對我不起作用 - 它只是在帖子中打印' <center></center> '。

具體來說,我使用的是Ruby和Koala寶石。 我試圖發布到用戶的頁面 如果我發布鏈接並在帖子的描述中嘗試中心黑客,它按預期工作 - 但不在消息中,我實際需要它。

更新:我已經向Koala gem提交了一個補丁,允許設置:no_encoding選項。 如果/當此補丁被接受時,如果該選項設置為true,則允許換行。 現在,有這個問題的人可以抓住我的寶石分支: https//github.com/ideaoforder/koala

對於那些好奇的人來說,問題在於法拉第。 請求方法設置為:url_encode,它將params作為url編碼的表單數據發送。 params必須作為常規數據發送,而不是表單數據(比如在cURL中使用-d標志而不是-f標志)。 我們通過將數據作為查詢字符串的一部分而不是編碼的params來完成此操作。

Facebook在帖子中實際接受的內容似乎時有變化,並且沒有很好地記錄。 鑒於此,我能夠通過發出以下請求在郵件中創建一個帶有換行符的牆貼:

POST https://graph.facebook.com/me/feed?access_token=<token>&message=line+1%0D%0Aline+2

在我的牆上創建以下帖子:

第1行
第2行

重要的是要知道什么是url編碼在哪里。 我的API請求中的message參數包含%0D%0A ,它等同於\\r\\n的轉義序列( 請參見此處 )。 如果您使用的Koala gem是對您提供的輸入進行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'

像往常一樣用你自己的替換wall id和訪問令牌參數(讓你的Ruby程序打印出來自Facebook的access_token )。 您應該看到一個JSON字符串作為輸出:

{"id":"wallid_postid"}

wallidpostid是數字。 如果您收到錯誤,Facebook或您的應用程序可能存在權限問題。

權限 :如果您要發布該頁面 ,您的應用必須具有來自頁面管理員的manage_pages權限,並且用戶必須當前在請求時登錄到您的應用和Facebook,除非您的應用還請求了offline_access權限。 如果用戶未登錄,您將收到以下回復:

{"error": {
    "type":"GraphMethodException",
    "message":"Unsupported post request."
}}

我還在狀態線上打破了一段時間。 我發現,如果一個人的願望也可以通過這種方法得到滿足,那么使用筆記可以提供很大的靈活性,而不是在狀態中插入換行符。 Facebook頁面也可以擁有自己的筆記。 只需將?sk = notes添加到您的帳戶或Page的URL中,您就會看到Facebook的Notes應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM