こんにちは。
色々辛いことがあって、むしゃくしゃしたのでTinderで色々遊んでみました。
とりあえず今回はTinderAPIを使って見ました。
Pynderの取得
pynderというものを使用しました。
git clone https://github.com/charliewolf/pynder
cd pynder
python setup.py install
実は、pipでも入れることが可能なのですが、こちらのライブラリでは色々エラーが出てきてしまいます。どうやらgit cloneの方ではそれらのエラーは出てこないようなので、こちらで入れるようにしましょう。
次に、facebookのトークンを取得します。
https://tinderface.herokuapp.com/に取得方法が記載されているとの情報が多かったのですが、リンク先がメンテナンス中でした。
8月時点でもメンテナンス中との情報があったので、諦めて別の方法を模索しました。
まず、web版のTinderにログインし、左クリックで検証を選択。Networkのタブを選択し、Nameのやつを色々選択していくとX-Auth-Tokenというのがあります。これがトークンですが、2時間で変更されてしまうので注意しましょう。
やっとTinderで遊べる
import pynder
token="先ほどのトークン"
session=pynder.Session(XAuth_token=token)
helpでみてみるとこんな感じです。
"""
class Session(builtins.object)
| Methods defined here:
|
| __init__(self, facebook_token=None, XAuthToken=None, proxies=None, facebook_id=None)
| Initialize self. See help(type(self)) for accurate signature.
|
| get_fb_friends(self)
| Returns array of all friends using Tinder Social.
| :return: Array of friends.
| :rtype: Friend[]
|
| matches(self, since=None)
|
| nearby_users(self, limit=10)
|
| profile = <cached_property.cached_property object>
| update_location(self, latitude, longitude)
|
| update_profile(self, profile)
|
| updates(self, since=None)
|
| ----------------------------------------------------------------------
| Data descriptors defined here:
|
| __dict__
| dictionary for instance variables (if defined)
|
| __weakref__
| list of weak references to the object (if defined)
|
| banned
|
| can_like_in
| Return the number of seconds before being allowed to issue likes
|
| likes_remaining
|
| super_likes_remaining
"""
get_fb_friendsというmethodは、facebook上の友達でtinderをしているユーザーを出すmethodのようですが何も出てきませんでした。(facebookではTinderを使用していることが秘匿される様配慮されているはずだが......。)1年ほど前まで使えていたようですが、APIの仕様が変更したらしく現在は使用できません(https://github.com/fbessez/Tinder)。少し残念な気持ちになりました。
nearby_usersは近隣のユーザーを出してくれます。defaultの数が10になっていますが、なぜか無限に出てきてしまいます。カウンタを付けて適度に出しましょう。そうしないと、429 Too Many Requestsとなってしまいます。リクエスト拒否のペナルティが12時間ほどあるので気をつけましょう。表示条件は、Session.profileのmethodから色々みることが可能です。
me=Session.profile
print(me.distance_filter)
print(me.age_filter_min)
print(me.age_filter_max)
他にもsession.update_locationで自分の位置を自由に変更することが可能です。使い方としては特定の大学の位置を指定するとかですかね。丸の内OLや港区女子を狙ったりすることも出来るかもしれません。
短いですが、とりあえずPynderの使い方としてはこれくらいで。もし続編があるとしたら画像処理とテキスト解析でしょうかね。