Come on!使用 Threads API 來自動發文吧
目錄
⦿ Threads
⦿ Meta Developer
⦿ 圖形 API 測試工具
⦿ Threads_User_Id
⦿ client_secret
⦿ Long Lived Token
⦿ Container
⦿ 第一步,創建 Container
⦿ 第二步,發佈 Container
⦿ 帶有圖片的文章
⦿ 發佈回覆
Threads
Threads 是 Meta 旗下的一個社群平台,是用來與 Elon Musk 的 X(前身 Twitter
)抗衡,從 Instagram 無性生殖分出來的用作 Notes
的現代自媒體工具,念法跟寫程式時用到的線程(Thread
)、IoT 產業的 Thread
協議都是同一個字,只是加上 s。
Meta 自今年六月釋出 Threads 的 API 後,我們已經可以透過 API 做到一些交互了,這讓自動發文
成了可能,下面就是一張透過 API 發文的結果,以及回文的範例。
不多說,下面簡單說明一下如何使用 Threads API 吧!
繼續閱讀|回目錄
Meta Developer
首先,進到 Meta 的開發者網站
,早先在 iOS 上測試第三方(Facebook)登入功能時,也寫了一篇文章,參考如下:
所以,第一步是在開發者網站上加入一個新的 APP(應用程式),為了使用 Threads API 而開了一個新的專案
。
點到我的應用程式 => 建立應用程式 => 不與商家連結後下一步 => 存取 Threads API => 幫APP 取名 => 建立應用程式。
接著,點進應用程式的主控版,存取 Threads API。
裡面已經有了基本權限,你可以再打開需要用到的其他權限。
我們點到測試使用案例,開一個新的視窗,開啟圖形 API 測試工具。
然後,在應用程式角色的地方新增用戶。
加入 Threads 測試人員,如果你登入的 Meta 開發者帳號與 Threads 帳號是一樣的,輸入帳號名
即可找到。
此時 Threads 測試人員右側就會變成待確認。
點進去網站權限(用瀏覽器操作,非 APP),到邀請的地方選擇接受。
好了,初步作業完成!
繼續閱讀|回目錄
圖形 API 測試工具
到了圖形 API 測試工具,先把你的 API 選到 https://graph.threads.net/v1.0
,http method 選到 GET。
接著產生 Threads 的 Access Token,這個 Token
要記起來。
Threads_User_Id
在圖型化測試工具下按 submit(提交),這時的 response 為你 THREADS_USER_ID
,即是剛才做為 Threads 測試用戶帳號的 ID,將這個號碼記起來。
client_secret
再來,我們到應用程式設定中的基本資料,找到應用程式密鑰。
同樣地,將這個密鑰記起來。
Long Lived Token
因為剛才的 Token 不是長時間的 Token,我們不希望做 API 測試時 Token 馬上就無效而需要重新產生,所以這邊必須先取得長時間的 Token。
curl -i -X GET "https://graph.threads.net/access_token?grant_type=th_exchange_token&client_secret=<THREADS_APP_SECRET>&access_token=<SHORT_LIVED_ACCESS_TOKEN>"
這裡的 client_secret
跟 access_token
我們都有了,所以你要代入自己剛拿到的,那麼,在 Postman 中這樣設定,endpoint url 是 https://graph.threads.net/access_token
。
會拿到如下資訊,這個 Long Lived Token 一樣要記起來!
{
"access_token": "Long Lived Token",
"token_type": "bearer",
"expires_in": 5184000
}
好了,到這邊為止,所有前置作業完成,下面就真正是 API 的交互了。
繼續閱讀|回目錄
Container
在 Single Threads Post 中,會有兩個步驟,第一個要用 POST /{threads-user-id}/threads
這個 endpoint,第二個要用 POST /{threads-user-id}/threads_publish
這個 endpoint。
你必須創建一個 Container,塞入你的媒體訊息,再發佈這個 Container。
第一步,創建 Container
首先,在https://graph.threads.net/v1.0/Threads_User_Id/threads
這個 endpoint 需放入前面透過 API 取得的 User ID。
接著是媒體訊息類型、媒體訊息,以及 Long Lived Token,Postman 如下:
在 http 交互中,由於是 Post,所以我們把參數放到 Body 去,讓 Postman 看起來更整潔,又或者使用 Terminal 的 curl:
curl -i -X POST \
"https://graph.threads.net/v1.0/Threads_User_Id/threads" \
-F "media_type=TEXT" \
-F "text=Hello World." \
-F "access_token=Long Lived Token"
這時 Response 取得的 id 即是 Container ID
第二步,發佈 Container
接著,在 https://graph.threads.net/v1.0/Threads_User_Id/threads_publish
這個 endpoint,同樣需放入 User ID。
而 creation_id 則是前一個 API 返回的 Container ID
,在 Terminal 的 curl 設置如下:
curl -i -X POST \
"https://graph.threads.net/v1.0/Threads_User_Id/threads_publish" \
-F "creation_id=Container_ID" \
-F "access_token=Long Lived Token"
最後,返回的 id 則是此篇文章(Post)的 ID。
這時你就會看到你的文章出現在 Threads 公開頁面中了。
帶有圖片的文章
接著,我們來試試帶有圖片的文章吧,回到第一個步驟,創建 Container,在 Postman 中如下:
或是用 curl:
curl -i -X POST \
"https://graph.threads.net/v1.0/Threads_User_Id/threads" \
-F "media_type=IMAGE" \
-F "image_url=http://where.image.is" \
-F "text=Hello World." \
-F "access_token=Long Lived Token"
image_url 要放圖片的 url,至於哪些 url 合法,哪些不合法就再自行測試囉,同樣地,第一個步驟的 Container ID 記起來,帶到第二個步驟去,然後就可以去你的 Threads 收穫結果了。
繼續閱讀|回目錄
發佈回覆
在回覆的地方,官方文件就講得很清楚,先看如何使用 curl:
curl -X POST \
-F "media_type=<MEDIA_TYPE>" \
-F "text=<TEXT>" \
-F "reply_to_id=<THREADS_ID>" \
-F "access_token=<ACCESS_TOKEN>" \
"https://graph.threads.net/v1.0/me/threads"
由於回覆也會考慮 Media Type,所以第一個步驟也類同創建 Container,Response 為 creation_id,接著再發佈這個 Container。
創建 Container 的地方在 Postman 裡:
由於只是要用 TEXT 回覆,這裡的 media_type 就是 TEXT,text 裡則擺放你要擺放的內容,reply_to_id 則是欲回覆的文章 ID。
Response 的 ID 拿到後,再回到前面發佈 Container 那一步。
在 curl 裡:
curl -i -X POST \
"https://graph.threads.net/v1.0/<THREADS_USER_ID>/threads_publish?creation_id=<MEDIA_CONTAINER_ID>&access_token=<ACCESS_TOKEN>"
在 Postman 裡:
接著就可以到文章看看成果了。
好了!完成了!
這次就分享到這,感謝您的閱讀。
繼續閱讀|回目錄
Reference: