もりさん...という方のブログを参考にbotを作りました。
https://moripro.net/gas-spreadsheet-random-tweet/
すでに2個は運用中で今日3つ目を作成したところなぜか
ttps://api.twitter.com のリクエストに失敗しました(エラー: 401)
と出るようになってしまいました。
他のアカウントと同じコードでライブラリも読み込んでAPIのkeyみsecretも変更しています。
ちょうど今日TwitterのAPI変更があったみたいでそれが原因かもと思いドキュメントを読みましたが「アクセストークンとシークレット管理の今後の変更」で今回の件とは微妙に無関係な気がします。
原因がわからないです。
詳しい方よろしくお願いします。
// 認証用インスタンス var twitter = TwitterWebService.getInstance( 'Consumer Key (API Key)', // 作成したアプリケーションのConsumer Key 'Consumer Secret (API Secret)' // 作成したアプリケーションのConsumer Secret ); // 認証 function authorize() { twitter.authorize(); } // 認証解除 function reset() { twitter.reset(); } // 認証後のコールバック function authCallback(request) { return twitter.authCallback(request); } // セルを取得 var sheetData = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("シート1"); // 「シート1」はシート名 var postMessageCell = sheetData.getRange(2, 3); // セルの位置。縦横それぞれ1~の番号で指定できる // ツイートを投稿 function postUpdateStatus() { var service = twitter.getService(); var response = service.fetch('https://api.twitter.com/1.1/statuses/update.json', { method: 'post', payload: { status: postMessageCell.getValue() } }); }
コンシューマキーとコンシューマシークレットを再度払い出すことはできないのでしょうか。
他に動いている環境があるコードの認証エラーはいくらコードを見ても解決不能です。
> コンシューマキーとコンシューマシークレットを再度払い出すことはできないのでしょうか。
再度払い出しました。それでも同じエラー出ます。
postMessageCell.getValue は正常に動作してますよね。
正常な他の2つとの違いはなんでしょうか。
> 正常な他の2つとの違いはなんでしょうか。
・Consumer Key (API Key)
・Consumer Secret (API Secret)
・ツイッターアカウント
・シート名
くらいです。。
Logger.log(...);で出力してもちゃんとシートの内容を取得出来ています。
最後のツイートpostでエラーが出ます。
先ほど修正して無事に解決しました。。コードを再修正して認証解除したあとに再認証したらうまくいきました。コメントありがとうございます!
回答1件
あなたの回答
tips
プレビュー