2016-07-28 4 views
1

Это мой первый раз, когда я занимаюсь ведением журнала с использованием учетных данных Facebook. Я хочу иметь возможность запрашивать списки в Airbnb через мою учетную запись. Моя первоначальная учетная запись в Airbnb осуществляется через Facebook. Вот пример запроса на странице airbnb: http://airbnbapi.org/#login-by-facebook.Использование API Airbnb с помощью Facebook Войти

Я не уверен, где я могу получить свой токен доступа client_id и Facebook. Хотя он указывает на https://developers.facebook.com/docs/facebook-login/access-tokens, чтобы получить токен доступа пользователя, но, если я его правильно понимаю, он требует, чтобы я создал приложение. Я не уверен, какой поток аутентификации необходим для использования API Airbnb.

Я уже смотрел документы Airbnb для поиска client_id, но бесполезно.

Вот то, что я до сих пор:

import requests 
import json 

API_URL = "https://api.airbnb.com" 
LISTING_ENDPOINT= "https://api.airbnb.com/v2/search_results" 

post_query = { 
    "client_id": "I HAVE NO IDEA WHERE TO GET IT", 
    "locale": "en-US", 
    "currency":"USD", 
    "assertion_type":"https://graph.facebook.com/me" 
    "assertion":"HOW SHOULD I GET THIS ONE?", 
    "prevent_account_creation":True 
} 

# I think this should be able to log me in and I should be able to query listings 
_ = requests.post(API_URL, post_query).json() 

query = { 
    "client_id":"FROM ABOVE", 
    "user_lat": "40.00", 
    "user_long":"-54.31" 
} 


listings = requests.get(LISTING_ENDPOINT, json=query).json() 
+0

Там, кажется, не является публичным апи, но доступ к частному, кажется тривиальным –

+0

Как я могу получить свой идентификатор клиента? – mousecoder

ответ

1

я наткнулся на такой же проблемой, как вы. Я наконец понял. Инструментом, который я использовал, является расширенная функция библиотеки запросов, то есть Session(), для сохранения файлов cookie. Важная часть входа в систему с третьей учетной записью - найти ссылку, которую мы должны отправить куки. Ниже приведен мой код.

import requests 
x=requests.Session() #savig the cookies when you click the "log in with facebook button" 
y=requests.Session() #saving the cookies for parsing the airbnb listing. 
account={'email':'your_facebook_account','pass':'your_facebook_ps'} 
log_in_with_facebook_click=x.post("https://www.airbnb.jp/oauth_connect?from=facebook_login&service=facebook") 

#all the cookies up to now is saved in "x" 
my_first_time_cookies=x.cookies.get_dict() 
real_login_link=log_in_with_facebook_click.url 

real_log_in=y.post(real_login_link,account,cookies=my_first_time_cookies) 
#the real login link is saved in "log_in_with_facebook" 
#pass the cookies and your facebook account information to the real login link 
#you should have logged into airbnb.For testing the log in, we do the following. We check the reservation data. 

from bs4 import BeautifulSoup 
page=1 
test=y.get("https://www.airbnb.jp/my_reservations?page="+str(page)) 
#Remember that the cookies we use to access airbnb website after loggin in is saved in "y" 
test_html=BeautifulSoup(test.text,'lxml') 
print(test_html.text) 
#you should have looked your tenants reservation information. 
Смежные вопросы