node.jsでTwitterに投稿をしてみる
node.jsでTwitter APIを使ってTwitterに投稿を行うまでの流れです。
ある一点でハマってしまったので、その点についても記述します。
流れ
keyとtokenの取得
ソースコード
投稿
前提条件
node.jsは既に導入済みとします。
筆者はhomebrew→nodebrew→node.jsの手順でインストールしました。
またTwitterのAPIを使うにはTwitterの開発者アカウントが必要ですが、そちらも登録済みとします。登録方法は詳しくまとめている方が沢山いるので、そちらを参照して下さい。
環境
PC
Macbook air 2013
OS
Big sur v11.2.3
Homebrew
v3.0.10
nodebrew
v8.9.4
エディタ
vs code
1. keyとtokenの取得
Twitterデベロッパーサイトにアクセスします。
右上にあるDeveloper Potralをクリックします。
Dashboardが表示されたら、左側のoverviewを選択して、Add Appをクリックします。
この画面はプロジェクト作成済などの状態で人によって変わりますので参考程度にしてください。
また、選択肢にプロジェクトとスタンドアロンが表示されている方は、公式のこちらを参考にしてください。
アプリの名前を決めます。他のユーザが既に使用している名前は使用できません。
今回はdemo2021-testという名前にしました。
名前が通ると、keyが生成されます。
このkeyは一度しか表示されませんが、現時点のkeyは今回の用途では使用できない可能性があるので保存はしなくても結構です。
keyは再生成できるので安心してください。
そしてそのまま、画面下にあるsettingをクリックしてください。
次にApp permissionsの変更を行います。
ここが冒頭での筆者がハマった点になります。
デフォルトではこの設定がreadになっているので、Twitterに書き込みが行えません。
なので、permissionsをread+writeに変更します。
先ほどkeyを保存しなくて良いとした理由は、keyのpermissionがreadになっており、変更後に再生成したkeyでないとtwitterへの書き込みができない可能性があるからです。
次にkeyとtokenを生成します。
settingsからkey and tokensに切り替え、Authentication TokensのGenerateをクリックすると、tokenが生成されます。
Consumer Keysでは、既に一度keyを作っているのでRegenerateからkeyを再生成します。
もし値を忘れた場合は、Regenerateからどちらも再生成が可能です。
2. ソースコード
ここからはターミナルでの作業です。
まずは、Twitterのモジュールをインストールします。
npm install twitter
次にプログラムを書いていきます。
ソースコードは、公式のドキュメントがあるのでそれに生成した自分のkeyとtokenを記述するだけです。
ファイル名は、twitter_node.jsにしました。
var Twitter = require('twitter');
var client = new Twitter({
consumer_key: '自身のAPI key',
consumer_secret: '自身のAPI secret key',
access_token_key: '自身のAccess token',
access_token_secret: '自身のAccess token secret'
});
client.post('statuses/update', {status: 'node.js test hello!'}, function(error, tweet, response) {
if(error) throw error;
console.log(tweet); // Tweet body.
console.log(response); // Raw response object.
});
{status: 'node.js test hello!'}の部分が、実際にツイートされます。
3. 投稿
あとは、プログラムを実行するだけです。
node twitter_node.js
Twitterにログインするとツイートがされています。
エラーを吐かれた場合
keyのpermissionsが変更前のreadとして反映されている可能性が高いです。
再生成したものを使用するようにしてください。
またkeyとtokenの配置も気をつけてください。
まとめ
node.jsからAPIを通してツイートできるようになりました。
Twitter APIに触れたのは初めてだったので色々と面白かったです。
今後はbot化を目指したいです。
参考文献
導入にあたり参考にした記事
Permissionsの解決に至った記事
↧