1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

node.jsでTwitterに投稿をしてみる。

Posted at

node.jsでTwitterに投稿をしてみる

node.jsでTwitter APIを使ってTwitterに投稿を行うまでの流れです。

ある一点でハマってしまったので、その点についても記述します。

流れ

  1. keyとtokenの取得
  2. ソースコード
  3. 投稿

前提条件

node.jsは既に導入済みとします。
筆者はhomebrewnodebrewnode.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デベロッパーサイト]
(https://developer.twitter.com/ja)にアクセスします。

右上にあるDeveloper Potralをクリックします。

developer_portal.png

Dashboardが表示されたら、左側のoverviewを選択して、Add Appをクリックします。

この画面はプロジェクト作成済などの状態で人によって変わりますので参考程度にしてください。

また、選択肢にプロジェクトとスタンドアロンが表示されている方は、公式のこちらを参考にしてください。

dashboard_add_app.png

アプリの名前を決めます。他のユーザが既に使用している名前は使用できません。

今回はdemo2021-testという名前にしました。

name your app.png

名前が通ると、keyが生成されます。
このkeyは一度しか表示されませんが、現時点のkeyは今回の用途では使用できない可能性があるので保存はしなくても結構です。
keyは再生成できるので安心してください。

スクリーンショット 2021-04-08 23.28.21.png

そしてそのまま、画面下にあるsettingをクリックしてください。

次にApp permissionsの変更を行います。

ここが冒頭での筆者がハマった点になります。

setting_permissions.png

デフォルトではこの設定がreadになっているので、Twitterに書き込みが行えません。
なので、permissionsをread+writeに変更します。

先ほどkeyを保存しなくて良いとした理由は、keyのpermissionがreadになっており、変更後に再生成したkeyでないとtwitterへの書き込みができない可能性があるからです。

スクリーンショット 2021-04-08 23.28.55.png

次にkeyとtokenを生成します。

settingsからkey and tokensに切り替え、Authentication TokensのGenerateをクリックすると、tokenが生成されます。

key&tokens.png

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の解決に至った記事

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?