/
tapioca_facebook.py
executable file
·39 lines (27 loc) · 1.13 KB
/
tapioca_facebook.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# coding: utf-8
from tapioca import (
TapiocaAdapter, generate_wrapper_from_adapter, JSONAdapterMixin)
from requests_oauthlib import OAuth2
from .resource_mapping import RESOURCE_MAPPING
class FacebookClientAdapter(JSONAdapterMixin, TapiocaAdapter):
api_root = 'https://graph.facebook.com/'
resource_mapping = RESOURCE_MAPPING
def get_request_kwargs(self, api_params, *args, **kwargs):
params = super(FacebookClientAdapter, self).get_request_kwargs(
api_params, *args, **kwargs)
params['auth'] = OAuth2(
api_params.get('client_id'), token={
'access_token': api_params.get('access_token'),
'token_type': 'Bearer'})
return params
def get_iterator_list(self, response_data):
return response_data['data']
def get_iterator_next_request_kwargs(self,
iterator_request_kwargs, response_data, response):
paging = response_data.get('paging')
if not paging:
return
url = paging.get('next')
if url:
return {'url': url}
Facebook = generate_wrapper_from_adapter(FacebookClientAdapter)