GASとTwitter APIでスプレッドシートの予約投稿ツールを作成しました。その際に見かけたエラーまとめです。
完成したツールはこちらです。
ツールの紹介はこちらです。
- アプリにアクセスを許可できません。 前に戻ってもう一度ログインしてください
- TwitterAPI*GAS(Google Action Script)のエラー
- スクリプトが完了しましたが、何も返されませんでした。
- Your changes couldn’t be saved. Cannot create a new access token without first invalidating the existing token
- unauthorized_client, Missing valid authorization header
- Exceeded maximum execution time
- SyntaxError: Identifier ‘spreadsheet’ has already been declared
- Exception: Already setting up a recurring clock trigger.
- You are not allowed to create a tweet with duplicate content
- Your changes couldn’t be saved. It’s a pain, but if you can, try updating again
- エラー: トークン取得エラー: 無許可クライアント、有効な認証ヘッダーがありません(行 605、ファイル「サービス」)
アプリにアクセスを許可できません。 前に戻ってもう一度ログインしてください
Twitterで認証する際にでるエラーです。初心者さんが躓きやすいエラーでわりとよくでるエラーです。
アプリにアクセスを許可できません。 前に戻ってもう一度ログインしてください
CLINET_IDとCLIENT_SECRET
のいずれか、あるいは両方が間違っているため修正するととおります。
callbackurlの指定も忘れずに。callbackurlのミスでもこのエラーがでます。callbackurlを変えるとアクセストクーンの更新も必要です。
イーロンさんがアプリを1つにしてしまったため、開発環境と本番環境で異なるurlに差し替えないといけないのも面倒なところ。回避策はアカウントを2つ用意する方が正解!
あとはTwitterのサーバーの一時的な不具合のこともあるようです。何日か待つと認証できた事例はありましたね。
TwitterAPI*GAS(Google Action Script)のエラー
スクリプトが完了しましたが、何も返されませんでした。
callback後にでるエラー。
スクリプトが完了しましたが、何も返されませんでした。
return;で何かを返してあげるだけ。
return HtmlService.createHtmlOutput('認証成功');
Your changes couldn’t be saved. Cannot create a new access token without first invalidating the existing token
Twitterポータルでアクセストクーンを作りたいのに生成できないエラー。
Your changes couldn't be saved.
Cannot create a new access token without first invalidating the existing token
GASのスクリプトプロパティのアクセストクーンを一度削除して、Twitterポータルで再読み込みしたら解決しました。紐づけが行われてしまったため、削除できなかったということなのでしょう。
unauthorized_client, Missing valid authorization header
この問題もCLIENT_SECRET
を再生成で通りました。
unauthorized_client, Missing valid authorization header
I was able to resolve by resetting my environment variables for the Twitter Client ID and Secret and then restarting the dev server.
https://stackoverflow.com/questions/74498352/getting-unauthorized-client-missing-valid-authorization-header-in-return-on-tw
Exceeded maximum execution time
Exceeded maximum execution time
最大実行時間は6分のようです。Gasにデータを読み込んで実行する場合、作りが悪いとひっかりそうです。このルールも基本のようなので覚えておきます。
SyntaxError: Identifier ‘spreadsheet’ has already been declared
SyntaxError: Identifier 'spreadsheet' has already been declared
重複しているようです。コピペで移植すると起こりやすい!別の.gsファイルをコメントアウトしたら改善されました。
Exception: Already setting up a recurring clock trigger.
Exception: Already setting up a recurring clock trigger.
トリガーがまだ設定されているようです。
既存のトリガーを削除してから新しいトリガーを設定する必要がありそうです。下記のようなコードを書いたら解決しました。
// 既存のトリガーを削除
const triggers = ScriptApp.getProjectTriggers();
for (let i = 0; i < triggers.length; i++) {
if (triggers[i].getHandlerFunction() === "post") {
ScriptApp.deleteTrigger(triggers[i]);
}
}
削除したのちに新しいトリガーを設定します。
You are not allowed to create a tweet with duplicate content
Twitterは重複投稿はダメですね。
You are not allowed to create a tweet with duplicate content
- 日付を追加する
- 前の投稿を削除する
- かなり間隔をあける
- 自分のツイートをリツイートにする(月額100ドルの有料プランになります)
ほか、何らかの工夫が必要です。
Your changes couldn’t be saved. It’s a pain, but if you can, try updating again
Twitterポータルの管理画面でアプリを作ろうとするとでるエラー。
Your changes couldn't be saved. It’s a pain, but if you can, try updating again
ユニークな名前でないといけないようです。自分だけではなく他の人も含めて…のようです。
簡単な解決方法としては末尾に適当に5桁ぐらいの数字をつけることです。よほど運が悪くないとかぶりません。
エラー: トークン取得エラー: 無許可クライアント、有効な認証ヘッダーがありません(行 605、ファイル「サービス」)
おそらくAPIキーの間違いです。基本を見直してもらえると改善するはずです。
コメント