※状況が進みましたので質問を編集しています。
Google Apps ScriptでTwitter Botを作っています。
リプライ時の返答を行う為、Webhookの設定をしていますが、TwitterにURLを登録しようとするとエラーになります。
APIキーやトークンの作り直し等も試しましたが動かなかった為、
試しに「GitHub - twitterdev/account-activity-dashboard」を使用してみたところ、
エラーメッセージが以下に変わりました。
{"code":214,"message":"Non-200 response code during CRC GET request (i.e. 404, 500, etc)."}
GAS側のコードは以下の通りです。とりあえずテストがてら固定文字列を返しています。
Javascript
1function doGet(e) { 2 var service = ContentService.createTextOutput("hogehoge"); 3 return service; 4}
ちなみにURLに直接ブラウザからアクセスした場合は正しく文字列が表示されます(ディベロッパーコンソールで確認すると200が返って来てます)。
なお、GAS側をreturn 'service';
にしてみる(つまりHTTPとしては何も返さない状態にする)と以下になります。
{"code":214,"message":"Webhook URL does not meet the requirements. Invalid CRC token or json response format."}
このことから、
「認証は通ったらしい(32ではない)」
「URLにアクセス出来ていない訳ではない(404ではない)」
「スクリプトの中身でエラーになっている訳ではない(500ではない)」
と思うのですが、ここから先に進めない状態です。
何か情報があればお教え頂ければ幸いです。
(以下は初回の質問)
{"code":32,"message":"Could not authenticate you."}
が返って来てしまいます。
修正や確認すべき点がありましたらご指摘頂けると助かります。
■登録時に使っているコード
Javascript
1//GASのエディタ画面から手動で実行しています 2function registWebhook() { 3 var endPointUrl = 'https://api.twitter.com/1.1/account_activity/webhooks.json?url=GASのURL' 4 var response = twitter.getService().fetch(endPointUrl, { 5 method: 'post', 6 payload: {} 7 }); 8 Logger.log(response); 9}
なお、試しに
Twitter REST APIの使い方
このサイトの「post-oauth1.php」を用いてPHPで実行してみましたが、結果は同様でした。
また、https://api.twitter.com/1.1/account_activity/webhooks.json
に対してGETでアクセスした場合も同様の結果となりました。
■やったこと
「TwitterWebService」ライブラリを入れました。
これを用いたツイートの投稿は上手くいっているので、APIキーとAPIシークレットキーは正常に設定出来ていると思います。
Javascript
1//ツイートを行う(成功する) 2function postTweet(postMessage) { 3 var service = twitter.getService(); 4 var endPointUrl = 'https://api.twitter.com/1.1/statuses/update.json'; 5 6 var response = service.fetch(endPointUrl, { 7 method: 'post', 8 payload: { 9 status: postMessage 10 } 11 }); 12}
あなたの回答
tips
プレビュー