質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

解決済

1回答

321閲覧

スレッズAPIを使いGASで複数枚画像を投稿したい

828kk88

総合スコア62

Google Apps Script

Google Apps ScriptはGoogleの製品と第三者のサービスでタスクを自動化するためのJavaScriptのクラウドのスクリプト言語です。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

0クリップ

投稿2024/09/24 11:30

実現したいこと

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という項目は存在しないというエラーでした ### 補足 特になし

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

YAmaGNZ

2024/09/24 12:15

多分ですが 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のドキュメントから推測しました。
828kk88

2024/09/24 13:35

ご指摘いただいたように修正したところ、複数画像での投稿ができました ありがとうございます
guest

回答1

0

自己解決

YAmaGNさんのコメントを参照

投稿2024/09/24 13:36

828kk88

総合スコア62

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問