実現したいこと
ThreadsのAPIを利用して、複数枚の画像を投稿したいです
発生している問題・分からないこと
現在のソースコードで画像1枚で投稿する事はできています。
公式のドキュメントによるとメディアコンテナを作成する際に、複数枚投稿するにはpayloadのis_carousel_itemをtrueにするところまではわかっているのですが、image_urlにどのような値を設定すればよいかわかりません。
正しいpayloadの書き方を教えていただきたいです
該当のソースコード
GAS
1payloadの書き方がわかれば解決できると思うので読みやすさを考え、メディアコンテナ作成の関数だけ記載します(必要があれば全体のコードのせます) 2 3```ここに言語を入力 4function createMediaContainer(tweet, mediaType, mediaUrl) { 5 6 // ペイロード 7 const payload = { 8 "media_type": mediaType, 9 "text": tweet 10 }; 11 12 if (mediaType === 'IMAGE' && mediaUrl) { 13 payload['image_url'] = mediaUrl; 14 payload['is_carousel_item'] = false; 15 } 16 17 const accessToken = workSheet.getRange('A1').getValue(); 18 19 const options = { 20 'method': 'post', 21 'payload': JSON.stringify(payload), 22 'contentType': 'application/json', 23 'headers': { 24 'Authorization': 'Bearer ' + accessToken 25 }, 26 'muteHttpExceptions': true 27 }; 28 const userId = workSheet.getRange('G5').getValue(); 29 const endpoint = `https://graph.threads.net/v1.0/${userId}/threads`; 30 31 32 const response = UrlFetchApp.fetch(endpoint, options); 33 const result = JSON.parse(response.getContentText()); 34 35 if (response.getResponseCode() === 200) { 36 Logger.log('メディアコンテナを作成。ID: ' + result.id); 37 return result.id; 38 } else { 39 Logger.log(response.getContentText()); 40 } 41 42 43}
### 試したこと・調べたこと - [x] teratailやGoogle等で検索した - [x] ソースコードを自分なりに変更した - [ ] 知人に聞いた - [ ] その他 ##### 上記の詳細・結果 is_carousel_itemをtrueにし、 image_urlに ・複数の画像urlの配列 ・複数の画像をullをカンマで区切った文字列 を入れてみましたが想定と違う型式というエラーでした またimage_url→image_urlsに変えてみましたがimage_urlsという項目は存在しないというエラーでした ### 補足 特になし
多分ですが
1.is_carousel_itemをtrueにしたメディアコンテナを作成し、そのIDを取得する(現状の1つの画像投稿の画像だけのもの)
POST /{threads-user-id}/threads
is_carousel_item=true
image_url=IMAGE_URL
2.1を投稿する画像の数だけ実行する。(3つの画像を投稿する場合は3つのメディアコンテナのIDを取得)
3.media_typeをCAROUSEL、childrenにカンマ区切りで上記で取得したIDを設定(テキストはここで設定)しIDを取得
POST /{threads-user-id}/threads
media_type=CAROUSEL
children=ID1,ID2,ID3
text=投稿メッセージ (ない場合は省略)
4.3で取得したIDで投稿
POST /{threads-user-id}/threads_publish
creation_id=3で取得したID
といった流れになるのではないかとAPIのドキュメントから推測しました。
ご指摘いただいたように修正したところ、複数画像での投稿ができました
ありがとうございます
回答1件
あなたの回答
tips
プレビュー