2017-06-14

PythonでTinder APIを使ってネトストとサイバーナンパ師やってみた

Python TinderのAPI Pynderを利用する



こんにちは。突然ですが、ナンパしたい。僕は陰キャラなので、歌舞伎町でナンパに繰り出すことなんてできない。


そういえば前回、PythonでTinderのAPIをいじるで書いた通り、PythonでTinderのAPIをいじれた。原理的には自分のアカウントのFacebook access tokenを取得して、Python上でTinderを動かす。


前までは導入編だったので、今回は応用編。APIを使わないとできないことを試してみよう。最終目標は地理情報を取得して、その場所に行かなくてもある場所の半径5km以内でナンパすることだ


手始めに、APIの練習。友達の彼女持ちでTinderを最近利用したユーザーを探してみる


TinderはFacebook上の友達しか表示されない点で人気のサービスだが、実はFacebook上の友達でTinderを利用している友人を取得できるらしい。


さらに、Tinderを利用している友達が最後にログインした時間もわかるらしいので、これらの情報を使って、妻子持ちのおっさんがTinderにいつアクセスしたかがわかる。ふむふむ、さっそく試してみよう。


https://github.com/tylerwhipple/pynder/blob/master/examples/tinder_social_examples.py


まずは、友達のTinderユーザーを取り出すコード

import pynder
facebook_auth_token = "[FACBOOK ACCESS TOKENを入れてね!]"
session = pynder.Session(facebook_auth_token)
friends = session.get_fb_friends()

for friend in friends:
    print(friend.name)
    print(friend.facebook_link)


で、実行してみたら..................
あ、意外にこんな人もTinderやってたんだね!って人が出てきて面白い。プライバシーで出せないけど(;´・ω・)


詳細なプロフィール情報(ユーザー名・プロフィール・最後にログインした時間)を見てみる



よし、そしたらもっと詳細なプロフィールを見てみよう。
詳細な情報はここから参考にしよう


user.bio # プロフィール
user.name # 名前
user.photos # 写真
user.thumbnail #トップ画
user.age # 年齢
user.birth_date # 誕生日
user.ping_time # 最後にオンラインになった時間
user.distance_km # 何キロ離れてるか
user.common_connections # 共通の友達
user.common_interests # 同じ興味
user.instagram_username # インスタグラムの名前
user.instagram_photos #それと写真
user.schools # 学歴
user.jobs # 職業


名前、プロフィール、写真、最後にオンラインになった時間を調べてみよう。

import pynder
facebook_auth_token = "[Facebook Access Token]"
session = pynder.Session(facebook_auth_token)
friends = session.get_fb_friends() #ここではnameとfacebook_urlしか出せないらしい


user_info_objects = []
for friend in friends:
    user_info_objects.append(friend.get_tinder_information()) #これで詳細な情報が抜き取れる

for user in user_info_objects:
print(user.name)
print(user.bio)
print(user.thumbnail)
print(user.ping_time)


で実行.....なぜかthumbnailはとれないらしい。外してみよう


import pynder
facebook_auth_token = "[FACEBOOK ACCESS TOKEN]"
session = pynder.Session(facebook_auth_token)
friends = session.get_fb_friends() #ここではnameとfacebook_urlしか出せないらしい


user_info_objects = []
for friend in friends:
    user_info_objects.append(friend.get_tinder_information()) #これで詳細な情報が抜き取れる

for user in user_info_objects:
print(user.name)
print(user.bio)
print(user.ping_time)
print("============")

で、実行......出てきた笑



最後にオンラインになった時間が正確には出てこないけど、ユーザー名、プロフィールがちゃんと出てくる。彼女いる同期の友達のプロフィールに「社会人1年目です」みたいに書いてあるから、たぶん最近の情報だな。情報としては非常に面白い。


Tinderのセキュリティががばがばすぎて面白い。


指定した場所で遠隔サイバーナンパしてみる



よし、こういう人のためにならない無駄な情報を手に入れても心が痛むだけなので、意味のあることをしよう。


本来サービスの仕様としては、スマホで現在地を指定して、半径Nkm以内のTinderユーザーにマッチするというアルゴリズムになっている。しかし、APIを利用すると、緯度と経度を指定して、ライクすることができるのだ。


なので、半径5km以内のどこどこにいる人だけライクすることもできるはずだ。半径5km以内の人を全員ライクするプログラムを作る。


①青山学院大学でサイバーナンパしてみた


まず、青山学院大学でナンパする。理由は顔面偏差値が高いからだ。
緯度と経度はここで検索したら出てきた。

緯度: 35.660374 経度: 139.709558
OK、これを変数に格納しましょう。
だめだ、青学生全然出てこない・・・・そうか、渋谷だから人多すぎるんだ。


②ICUでナンパしてみる


武蔵境でど田舎にある、ICUでナンパしてみよう。緯度と経度はこちら


http://www.geocoding.jp/?q=%E5%9B%BD%E9%9A%9B%E5%9F%BA%E7%9D%A3%E6%95%99%E5%A4%A7%E5%AD%A6

緯度: 35.687537 経度: 139.529551
 よし、じゃあこれで検索してみよう。


import pynder
facebook_auth_token = "[Facebook access token]"
session = pynder.Session(facebook_auth_token)

#緯度と経度を指定
LAT = 35.687537
LON = 139.529551
session.update_location(LAT, LON)
session.profile
users = session.nearby_users()
for user in users:
print(user.name)
#print(user.photos)
#print(user.bio)
print(user.schools)
print(user.distance_km)
print("============")


すると......


1回目で東京外語大学の学生が出てきた!
10回目で目的のICU生が出てきた。やったね!


ってことは、遠隔で自分の目標としている地域でナンパできるってことだ!すごい!
しかしスワイプしても返事がない。ただのしかばねのようだ。

注目の投稿

 PythonのTweepyを利用して、Twitter APIを利用している。 その中で、ハマったポイントをメモしておく。 まず、Searchに関して。 Twitter検索は、クライアントアプリ側では、全期間の検索が可能になっている。 一方で、APIを利用する際は、過去1週間しか...