LoginSignup
2
0

More than 5 years have passed since last update.

RubyでTwitterのアカウント間の関係を取得する

Last updated at Posted at 2018-03-05

はじめに

Twitterのフォロワーのみに閲覧を制限したコンテンツの作成を行えるアプリの開発時に必要となったので調査しました。

gemのインストール

gem install twitter

ソースコード

ユーザーAとユーザーBのスクリーンネームを引数とし、ユーザーAがユーザーBをフォローしていればtrue、していなければfalseを返す関数です。

def auth(A_screen_name,B_screen_name)
  require 'twitter'
  client = Twitter::REST::Client.new do |config|
    config.consumer_key        = TWITTER_API_KEY
    config.consumer_secret     = TWITTER_API_SECRET
    config.access_token        = OAUTH_TOKEN
    config.access_token_secret = OAUTH_SECRET
  end

  result = client.friendship(A_screen_name,B_screen_name)
  return result.source.following?
end

TWITTER_API_KEY,TWITTER_API_SECRETにはTwitterから取得したAPIキーを入力してください。
セキュリティの観点から環境変数に設定したものを参照する形にするべきです。
OAUTH_TOKEN,OAUTH_SECRETにはTwitterとのOAuth認証によって発行されたものを入力してください。

解説

client.friendshipメソッドはユーザー間の関係性を返します。

result = client.friendship(A,B)

上記のとき、result.source.following?はAがBをfollowしてる時にtrueになり、result.source.followed_by?はBがAをfollowしてる時にtrueになります。これでアカウント間の関係を取得することが出来ます。

詳細

こちらのブログに本記事の内容を応用した、Twitterのフォロワーのみに閲覧を制限したコンテンツの作成を行えるアプリの開発についての記事を書きました。

参考

Qiita - OmniAuthで認証した後に、tweetしたりfollowしたりする

2
0
2

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
2
0