搜尋此網誌

2022年9月14日 星期三

Twitter API 發送 Tweet

緣起:


    我工作的專案最近需要加個功能,就是在系統上貼文時,我們系統所使用的 LINE、Twitter、FB 帳號也能同步分享貼文的連結,所以我開始研究那些社群平台的 API 要怎麼使用。LINE 跟 FB 的 API 之前有摸過,FB 那時有碰到問題卡關,之後就沒繼續研究下去了,這次有機會再跟它們交手,希望能透過工作的壓力來突破那些困難。Twittter 的 API 我還沒碰過,所以先研究它,這兩天也有玩出一點成果,寫個文章來記錄自己的發現。



Twitter Developer:


    這個是官網,用自己的 Twitter 帳號登入,我記得會有啟用開發者帳號的步驟,那時沒截圖下來,不過三兩下就能填完了,應該不會有什麼問題。登入後,點選右上方的 Developer Portal 就能進入管理 APP 的介面來創建自己的 APP,如果沒多花錢升級方案的話,一個帳號就只能創建一個 APP。

預設是 Essential,有 Elevated 跟 Academic Research 兩個方案能選擇,應該是用不到啦

    創建好一個 APP 後,點進 APP 裡面做設定,在 Setting 頁面下方有個 User authentication settings 的欄位,點它的 Edit 按鈕進入 App Authentication 的設定。


    我的 APP 要能自動 PO 文,所以要把 App 的 Permission 改成 Read and write (它預設是 Read)


    不是很確定這個選項在幹啥,但我很確定我的 App 是個 bot,所以我就選下面那個選項


    最後是這裡,我在這邊卡住,它這邊有兩個選項是必填的,一個是 OAuth2.0 認證成功後要導向的 URL,叧一個 Website URL .... ,我其實不知道那項是幹啥用的,我猜是使用這個 App 的網站,那兩個欄位沒填的話就不能儲存那些設定的變更。


    我花了不少時間才理解,我使用 App 來讓我的帳號自動送推的這個功能,只會用到 OAuth 1.0,OAuth 2.0 是我的 App 要給其它人透過他們的 Twitter 帳號使用時才會用到。所以那兩格我就隨便填了能通過格式檢查的連結,填完後,最下面的 Save 按鈕就能按下,儲存我們的設定了。

    再來到 Keys and tokens 那邊,點選 Regenerate 或 Generate 來產生使用 API 時會用到的 token,會有 API Key、API Secret、Bearer Token、Access Token、Access Secret,下面的 OAuth 2.0 就不用理了,App 的設定大概就到這邊了。



PostMan:


    官方有題供 PostMan 的範例檔,讓你可以快速測試你的 App,不需再用 unix 的 curl 或其它程式的 http 套件寫麻煩的指令或程式。這邊可以下載給 postman 用的 json 檔,雖然官網也有提供線上版 PostMan 的連結,不過我不太會用。

    開啟本地端的 postman 軟體後,選擇 File -> Import...,載入從 git 上載下來的 Twitter API v2.postman_collection.json 跟 Twitter API v2.postman_environment.json 檔。載入完成後,可以在我們的 Workspace 看到 Twitter API,點選它 -> Manage Tweets -> Create a Tweet。



    這個 Project 會使用到那些認證的 Key,我在摸索時才發現 Postman 也有提供變數的供能,弄了一會兒才了解這東西怎麼用。

這種 {{variable}} 變數的格式好像有在哪看過的說

    我們載入那些 json 檔時也已經有把環境變數的設定檔給戴入了,可以透過右上角的下拉選單來選擇,選擇 Twitter API v2。


    再來點擊旁邊的眼睛來編輯那些變數的值



    再來就把我們從 APP 拿到的 Key 值都填進去,每一項的 INITIAL VALUE 跟 CURRENT VALUE 都要填,填完後記得要 Save。再來回到 Create a Tweet 那邊,點 Send,如果沒問題的話,收到的 Json 回應應該會像這樣。


    回應的 data 會有那個 tweet 的 id 跟我們 tweet 的內容,再來到我們的 twitter 個人頁面上面看,的確有產生一條推文。


    完美,最後一個問題是,得到 id 後,要怎麼從 id 連到推文的頁面呢 ? 在這邊有找到解答,只要使用 https://
twitter.com/anyuser/status/{那個id} 就能連到推文的頁面了。

    我再來就要研究怎麼使用 C# 程式來執行我在 Postman 上做的步驟,還有要怎麼在推文時加圖片。先把明天需要讀的資料的連結放在下面,方便明天查找 (我今天開太多 twitter developer 的分頁了)。


沒有留言:

張貼留言