前提・実現したいこと
お世話になります。
Node.js + ExpressにてTwitter APIを使用しているのですが、
ダイレクトメッセージ送付("direct_messages/events/new")時のみ認証エラーとなってしまいます。
恐らくコード内で認証に関する記述が不足している故のエラーだと思いますが、
ご教示いただけましたら幸いです。
発生している問題・エラーメッセージ
{code:32 message: 'Could not authenticate you.'}
該当のソースコード
json
1/*twitterSecret.json*/ 2{ 3 "consumer_key": "xxxxxxxxxxxxxxxxxxxxxx", 4 "consumer_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 5 "access_token_key": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", 6 "access_token_secret": "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" 7}
Javascript
1var twitter = require('twitter'); 2var fs = require('fs'); 3 4/* 略 */ 5 6const secret = JSON.parse(fs.readFileSync("twitterSecret.json","utf-8")); 7const client = new twitter(secret); 8 9const params = { 10 event: { 11 type: "message_create" 12 , message_create: { 13 target: { 14 //※下記のどちらの指定方法も試してみましたが結果は同じでした 15 recipient_id: "xxxxxxxxxxxx" 16 // screen_name: "xxxxxxxxxxx" 17 } 18 , message_data: { 19 text: "test" 20 } 21 } 22 } 23}; 24 25client.post("direct_messages/events/new", params, function(error, data, response){ 26 if(!error){ 27 console.log("成功!"); 28 } 29 else { 30 console.log("失敗"); 31 console.log(error); 32 } 33}); 34
試したこと
- 同じトークンで他のエンドポイント("direct_messages/events/list", "statuses/update"等)を実行してみましたが、問題なく動作したため、トークンが間違っているということはなさそうです。
- TwitterからAPIを経由せずに対象となるIDにDMの送信ができていたので、DMの送信ができないわけでもなさそうです。
補足情報(FW/ツールのバージョンなど)
Node.js : 8.10.0
Express : 4.16.1
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。