どうせならメッセージ内容から適当な単語を抽出して、人工無能的なリプライ内容にしたかった。
と思ったら、タイムラインを非公開にしている不届きな輩がいたため、botアカウントからは返信されたことにも気づけない。
やむなくbotに「自動フォロー返し」を実装することになった。
## 引数はTwitterオブジェクト
def check_friendship(twi):
dic = {}
# BOTからフォロー申請中のIDを列挙
outgoing_ids = set(twi.friendships.outgoing(**dic)['ids'])
print 'friendships/outgoing:', outgoing_ids
# BOTがフォローしているIDを列挙
dic['screen_name'] = BOT_NAME
following_ids = set(twi.friends.ids(**dic)['ids'])
print 'friends/ids:', following_ids
# BOTをフォローしているIDを列挙
followers_ids = set(twi.followers.ids(**dic)['ids'])
print 'followers/ids:', followers_ids
# BOTをフォローしており、BOTがフォローを申請していないIDを抽出
diff = followers_ids.difference(following_ids,outgoing_ids)
print 'difference', diff
# フォロー申請を出す
for i in diff:
dic = {}
dic['user_id'] = i
twi.friendships.create(**dic)
とりあえず、TwitterのREST API名であるoutgoingとcreateが機能を連想しにくい。
あと、pythonのset型に対する集合操作が強力で驚いた。