いわゆるbot用に複数のアカウントでそれぞれアプリケーションを作成しているのですが、アカウントAでは問題ないのに、アカウントBでは上記エラーになってしまう原因がわからず悩んでおります。
コードはPHPで、TwitterOAuthライブラリ(https://twitteroauth.com/)を使用しています。
エラーになるアカウントとならないアカウントの違いは、4つのアクセスキー部分のみです。
なので問題があるのはコード以外の部分かと思っているのですが、アプリケーションの設定にも違いが見つけられず、お手上げ状態になっています。
試しに新しくアプリケーションを作成しても、アカウントを新規登録しても同じ現象になるという状態です。
原因を知りたいです。よろしくお願いいたします。
Consumer Key, Consumer Secret, Access Token, Access Token Secret の組み合わせが間違っているか設定ミスでしょう。
あるいは、アプリケーション X と Y で、
$connection = new TwitterOAuth(CONSUMER_KEY, CONSUMER_SECRET, $access_token, $access_token_secret);
で生成される $connection オブジェクトを誤って参照しているとかではないでしょうか。
回答ありがとうございます!
2017/06/11 14:11:24結論から申し上げますと解決いたしました!
こちらの回答を拝見した後、改めてアクセスキー4つの部分をTwitterの開発者ページからコピペしてきて試したら今度はエラーコード32の「Could not authenticate you」エラーが返ってきたので、ググってみるとコンマ記号のエンコードに問題がある場合があるとの記述を見つけました。
https://teratail.com/questions/2193
それで、アクセスキーの設定周りにコンマは無いけどアクセスキー文字列を括っているクォーテーション記号に何かあるかも知れないと思い、クォーテーションを入力し直してみた所、エラーにならず正常にレスポンスが返ってきました。
どうやらアクセスキーをコピペした時にクォーテーションとの間に画面上見えない不可視文字が含まれていたようです。
最初に出たBad Authentication dataエラーは何だったのかはわからないままですが、問題が解決したのでこの質問は終了とさせていただきます。
ありがとうございました。
自分の回答は関係なかったようですが、解決できて何よりです。
2017/06/12 23:54:01