Oauth認証
GASでtwitter apiを叩くためにはOauth認証とCallBackURLの設定が必要になります。
認証方法については↓の記事で解説しています。
参照:【GAS】TwitterAPIを使ってツイート検索結果をスプレットシートに書き出す
上記記事で認証が完了しており、「getTwitterService()」で認証情報が呼び出せている前提で下記コードをするとリストに関するAPI処理が行えます。
リストの確認
// リストを取得する function get_lists(){ const service = getTwitterService(); if (service.hasAccess()) { var url = "https://api.twitter.com/1.1/lists/list.json"; const response = service.fetch(url, {method: 'get'}); const result = JSON.parse(response.getContentText()); var code = response.getResponseCode(); if (code != 200){ console.log(code) } else{ // console.log(result) for (let i = 0; i < result.length; i++){ console.log('オーナーユーザー',result[i].user.name ,'リスト名:', result[i].name, 'リスト内部ID:',result[i].id_str); } } } else{ Logger.log("認証エラー"); } }
上記コードを実行すると認証しているツイッターアカウントのリストの名前と内部IDがコンソールに出力されます。それで確認した内部IDは次にリストにユーザーを追加する際に使用します。
リストにユーザーを追加する
1人ずつ追加する場合
// リストにユーザーを追加 function add_list(){ const service = getTwitterService(); list_id = '追加するリストのID' screen_name = 'python_mllover' // リストに追加するユーザーのID(@以降) var response = service.fetch("https://api.twitter.com/1.1/lists/members/create.json?list_id="+ list_id +'&screen_name='+screen_name, { method: 'post', muteHttpExceptions: true, }) var code = response.getResponseCode() if (code == 200){ console.log('処理成功!') // console.log(response.getContentText()) } else{ console.log('レスポンス',response.getResponseCode()) console.log(response.getContentText()) } }
APIのパラメーターの指定条件などについては以下を参照してください
ドキュメント:https://syncer.jp/Web/API/Twitter/REST_API/POST/lists/members/create/
まとめて追加する場合
// リストにユーザーを追加 function add_lists(){ const service = getTwitterService(); list_id = '追加するリストのID' user_ids = '1374349910980575233,1536761356350726144,289397635,201288722' var response = service.fetch("https://api.twitter.com/1.1/lists/members/create_all.json?list_id="+ list_id + '&user_id='+user_ids, { method: 'post', muteHttpExceptions: true, }) var code = response.getResponseCode() if (code == 200){ console.log('処理成功!') // console.log(response.getContentText()) } else{ console.log('レスポンス',response.getResponseCode()) console.log(response.getContentText()) } }
終わり
他のAPI処理についても記事にまとめているのでもしよければ参考にしてください。
関連記事:【GAS】TwitterAPIで特定のツイートにリツイート・いいねしたユーザーを取得する
関連記事:【GAS】TwitterAPIのV2でツイートを定期的に自動投稿する
関連記事:【GAS】TwitterAPIを使ってツイート検索結果をスプレットシートに書き出す
コメント
[…] 関連記事:【GAS】TwitterAPIからリストの確認・リストへのユーザー追加 […]