WordPressのプラグイン「NextScripts: Social Networks Auto-Poster」で投稿エラー

LINEで送る
Pocket

 Twitterで書いていたように、「NextScripts: Social Networks Auto-Poster」でエラーが出て、Blogからの自動投稿ができなくなっていた。
 とりあえず解決できたので、その備忘録。

エラーメッセージには、

=ERROR=- Array ( [headers] => Requests_Utility_CaseInsensitiveDictionary Object ( [data:protected] => Array ( Thu, 11 Aug 2022 12:22:11 +0000 => Fri, 29 Jul 2022 04:09:41 GMT [content-type] => text/html; charset=UTF-8 [cf-cache-status] => DYNAMIC [expect-ct] => max-age=604800, report-uri=”https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct” [server] => cloudflare [cf-ray] => 73230022292b8a62-NRT ) ) [body] => Error: Sorry, the URL you entered is on our internal blacklist. It may have been used abusively in the past, or it may link to another URL redirection service. [response] => Array ( => 400 [message] => Bad Request )

 と、出ていた。
 メッセージ中の「Error: Sorry, the URL you entered is on our internal blacklist. It may have been used abusively in the past, or it may link to another URL redirection service.」とは、
 「エラーがしました。申し訳ございませんが、入力されたURLは弊社内のブラックリストに掲載されています。過去に悪用されたがあり、また他のURLリダイレクトにリンクしている可能性があります。」

 エラーコード400は、「クライアントの要求に何らかの誤りや問題があり処理を完了できなかったことを示すもの」とのこと。

 Twitterの「Developer Portal」を確認すると、「User authentication settings」の中の、

User authentication settings

User authentication settings

 「Callback URI / Redirect URL」が空欄になっていたので、自のURLを入れた。……のだが、それでも解決しなかった。
 API Key and SecretAccess Token and Secretを再発行してみたが、それでも解決しなかった。
 う〜〜む……、以前は問題なかったのに、先週の投稿分から機能しなくなったので、Twitterの仕様が変わったのではないかと思った。

 そこで、新たにAPIを作成してみた。
 以前は、STANDALONE APPSだったのだが、Projectとして作成した。
 すると、今度は違うエラーメッセージが出てきた。

-=ERROR=- Array ( [pgID] => [isPosted] => 0 [pDate] => 2022-07-29 03:49:51 [Error] => | Resp: {"title":"Forbidden","detail":"Forbidden","type":"about:blank","status":403}

 403エラーは、「ページが存在するものの、特定の者にページを表示する権限が付与されず、アクセスが拒否されたことを示すもの」ということ。
 アクセス権だって?
 そんなはどこにあるんだ?

 Twitter APIのFAQを参照すると……

アカウント取得apiの403エラー

簡単にご説明しますと、弊社のdeveloper potalのUI上 (https://developer.twitter.com/ 1 , 各Keys and Tokens) からもtokenを"Regenerate"操作することが可能なのですが、そこでRegenerateしても新たなtokenへ今回追加したら新しいApp permissionが付与されないため、引き続きエラーとなる報告が多数寄せられています。

今回新しくアプリへの権限を追加したことにより、ユーザから"明示的"に新しいパーミッションへの許可を取る必要があるため、developer potalのUI上からのRegenerateでは期待通りの動作となりません。そのため、前述の投稿で案内しているように、通常の 3-legged-OAuth 認証プロセス (例: Sign In With Twitter 17) によってtokenの再取得をお願いいたします。

 わかったような、わからないような……。
 認証プロセスを変えて、tokenの再取得をしても変化なし。
 がぁぁーー、わからん。

 新たに作ったProject APIの設定を見ていたら、User authentication settingsの中に、

App permissions

App permissions

 と、「OAuth 1.0a」をONにすると、Permissionの設定が出てきた。
 それを「Read and write」にして、したら……

 投稿できた(^o^)

 STANDALONE APPSのAPIは使えないままだが、とりあえずProject APIで使えるようになったから、解決としよう。

(Visited 396 times, 1 visits today)