はじめに
今回の制作物は、TinderのAPIを使って、緯度経度を指定するとその付近にいる異性のニックネーム・学校名・指定したエリアからどれくらい離れた場所にいるか・Instagramのアカウント名・共通のFacebookフレンドを表示するスクリプトを制作します。完成コード
import pynder
session = pynder.Session('Facebookのアクセストークン')
friends = session.get_fb_friends()
#緯度と経度を指定
#Yokohama Station
LAT = 35.465786
LON = 139.622313
session.update_location(LAT, LON)
session.profile
users = session.nearby_users()
for user in users:
print(user.name)
print(user.schools)
print(user.distance_km)
print(user.instagram_username)
print(user.common_connections)
print("============")
環境構築
Pythonは3系を使用しています。また、環境構築に関してはPyenvとHomebrewでゴニョゴニョしています。 < p class=”st-share”>Macと環境構築メモ【2018/04更新】
とか Mac(Homebrew)でPython(pyenv/virtualenv)開発環境を作る を参考にしてください。
Pynderをインストール
PynderをいうモジュールがTinderのAPIをいじる際に必要なので、導入します。sudo pip install pynder
python -m pip freeze
pynder==0.0.13と表示されれば問題なくPynderがインストールされています。
TinderAPIをいじるソースをまずはコピー
大まかとなるソースをGitHubから引っ張ってくる。https://github.com/charliewolf/pynder
そうすると、コメント読めばわかるとおり自分で変更する部分がいくつかあります。 ただ、2行目のsession変数に入れる、facebook_idは不要なので、facebook_id,は消しておきましょう。
facebook_auth_tokenをぶち込む
ここが一番苦労しました。 普通にデベロッパーとして、ゴニョゴニョしても動かない・・・。というところで、かれこれ3時間以上躓く。
tinderfaceを使ってやるが、最後の最後で・・・
まず、https://tinderface.herokuapp.com/に飛ぶと、こんなページに飛びます。


スクリプト実行
今回は、横浜駅周辺という大変ローカルネタで攻めています。そして、リアリティ溢れるエリアですね。ドが付く変態なので、そこら辺許容してください。
python tinder_location.pyと走らせます。 どうでしょうか?わんさかわんさか、といってもあまり数出てこないときもあります。 何度かコマンド
python tinder_location.pyを叩いていると、異性のニックネーム・学校名・指定したエリアからどれくらい離れた場所にいるか・Instagramのアカウント名・共通のFacebookフレンドが出てくるかと思います。 ただ、悪用は厳禁ですので、あしからず。
まとめ
今回はPython使って何してんだ!?という感じのモノですが、こういう興味とか好奇心のある分野から攻めるのは悪いことではないので、(悪用さえしなければ!)、どんどんやっていきたいですね! こちらが完成コードです。Facebookのアクセストークンの部分はセッションが切れるのか、たまにhttps://tinderface.herokuapp.com/にて、同じ手順を踏まないといけないのが面倒ですが、その際は同じ手順を踏めば動きます。 素敵なPythonハックライフを!完成コード最後にバッ!
import pynder
session = pynder.Session('Facebookのアクセストークン')
friends = session.get_fb_friends()
#緯度と経度を指定
#Yokohama Station
LAT = 35.465786
LON = 139.622313
session.update_location(LAT, LON)
session.profile
users = session.nearby_users()
for user in users:
print(user.name)
print(user.schools)
print(user.distance_km)
print(user.instagram_username)
print(user.common_connections)
print("============")