搜尋此網誌

2022年9月19日 星期一

Twitter API 上傳圖片並加入 Tweet

緣起:


    今天上午在試跑上個禮拜寫好的 C#,結果又遇上 authorization 的問題,上次好像不小心把一些東西給改掉,花了不少時間才把錯給找出來。今天下午有研究出上傳圖片的方法,滿開心的,記錄完後要繼續研究把它寫成 C# 程式來運作。



上傳圖片:


    我看這篇教學文章來操作的,直接使用 POST Man 裡的那個 Create a Tweet 範例來改,因為它也會用到 OAuth 1.0。把網址改成 https://upload.twitter.com/1.1/media/upload.json,然後上傳的格式要改成 form-data

    
    PS:圖片有誤,要 POST 的 endpoint 應該是 https://upload.twitter.com/1.1/media/upload.json 才對。

    最重要的參數是 media,要把它的格式改成 File,這樣就能讓你選擇你要上傳的檔案了。我原本想說,如果上傳的檔案也要被當成產生 oauth_signature 的參數的話也太麻煩,後來去查了查後發現,其實不用 XD。

    成功上傳的話,它會回應一個 json,最重要的就那個 media_id,必須記下來,之後 po tweet 時會需要這個 id。



Tweet 附加圖片:


    最後來試試我們剛上傳的圖片,這邊一樣使用 POST Man 的 Create a Tweet 範例,網址要改回原本的 https://api.twitter.com/2/tweets,body 格式是 json。除了原本的 text 之外,還要加 media 的東西,只是我不確定要怎麼打才對,是要 "media_id":"1122232222"、還是 "media":"12312312" ... ,折騰了好一會後,回去看官方文件才發現,原來 Manage Tweet 那邊就有寫了。


哦~~ 原來如此

    media 是一個物件,裡面的 media_ids 是個陣列,可以放多個 id 值。所以我們的 POST Man 要改成這樣


    上傳後,沒出現錯誤碼就是成功了 ~~ 我們就能在 Twitter 上看到我們自己 PO 的文。


    話說回來,那個 media id 不能拿其它人 tweet 的media id 來用,會有存取權限的錯誤訊息,我原本以為,只要能拿到 media id 的話,就能透過 id 來使用那張圖片 XD,不知為啥會有那種白癡想法。

沒有留言:

張貼留言