LoginSignup
5
3

More than 5 years have passed since last update.

Node.jsを使って、特定のツイートをしている人をフォローする

Last updated at Posted at 2019-02-28

お馴染みのtwitterモジュールを使います。

フォローのAPIの公式ドキュメントはこちら(POST friendships/create)

使うメソッド

  • .stream('statuses/filter')で特定ツイートを検索
  • .post('friendships/create')でフォローします。

フォローする際はユーザーのIDかスクリーンネームを渡してあげる模様です。

フォロー関連はなかなかサンプルが見つからないですね。

https://www.npmjs.com/package/twitter

筋トレのハッシュタグでツイートしている人をフォローするコード

app.js
'use strict';

const twitter = require('twitter');
const client = new twitter({
    consumer_key: '', // consumer keyを記入
    consumer_secret     : '', // consumer secretを記入
    access_token_key    : '', // access tokenを記入
    access_token_secret : '' // access token secretを記入
});

// async/awaitで表現
const main = async () => {
    const stream = await client.stream('statuses/filter', {'track':'#筋トレ'});
    stream.on('data', async data => {
        console.log(data.id_str);
        try {
            await client.post('friendships/create', {user_id:data.user.id});
            console.log(`${data.user.name}さんをフォローしました。`);            
        } catch (error) {
            console.log(error);
        }

    });
}

main();

最初ミスったエラー

こんな感じでCannot find specified user.というエラーメッセージがちょくちょく出てました。

[ { code: 108, message: 'Cannot find specified user.' } ]

こちらの記事を見て気づきましたが、client.post('friendships/create', {user_id:data.id});という形で ユーザーのIDじゃなくてツイートのIDを指定してしまっていたのが原因だったみたいです。

tweepyでツイート検索キーワードでフォローしたいがエラーで出る

正しいのは、client.post('friendships/create', {user_id:data.user.id});という指定ですね。

参考

5
3
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
5
3