Как мне создать вызов oauth api?

2

Я пытаюсь получить tumblr "понравились" сообщения для пользователя на http://api.tumblr.com/v2/user/likes url. Я зарегистрировал свое приложение с помощью tumblr и разрешил приложение получать доступ к данным пользователя tumblr, поэтому у меня есть oauth_consumer_key oauth_consumer_secret oauth_consumer_key, oauth_consumer_secret, oauth_token и oauth_token secret. Тем не менее, я не уверен, что делать с этими деталями, когда я делаю вызов api. Я пытаюсь создать сценарий командной строки, который будет просто выводить json для дальнейшей обработки, поэтому решение в bash (cURL), Perl или python было бы идеальным.

Теги:
oauth
tumblr

2 ответа

1

Ну, если вы не против использования Python, я могу порекомендовать его. Существует не пример Tumblr, но есть реальные, рабочие примеры для OAuth 1.0/a и OAuth 2.0. API должен быть простым и прямым. Я не уверен, какие другие требования вы можете иметь, но, может быть, стоит сделать это?

Вот рабочий пример, если вы заинтересованы:

from rauth import OAuth1Service

import re
import webbrowser

# Get a real consumer key & secret from http://www.tumblr.com/oauth/apps
tumblr = OAuth1Service(
    consumer_key='gKRR414Bc2teq0ukznfGVUmb41EN3o0Nu6jctJ3dYx16jiiCsb',
    consumer_secret='DcKJMlhbCHM8iBDmHudA9uzyJWIFaSTbDFd7rOoDXjSIKgMYcE',
    name='tumblr',
    request_token_url='http://www.tumblr.com/oauth/request_token',
    access_token_url='http://www.tumblr.com/oauth/access_token',
    authorize_url='http://www.tumblr.com/oauth/authorize',
    base_url='https://api.tumblr.com/v2/')

request_token, request_token_secret = tumblr.get_request_token()

authorize_url = tumblr.get_authorize_url(request_token)

print 'Visit this URL in your browser: ' + authorize_url
webbrowser.open(authorize_url)
authed_url = raw_input('Copy URL from your browser\ address bar: ')
verifier = re.search('\oauth_verifier=([^#]*)', authed_url).group(1)

session = tumblr.get_auth_session(request_token,
                                  request_token_secret,
                                  method='POST',
                                  data={'oauth_verifier': verifier})

user = session.get('user/info').json()['response']['user']

print 'Currently logged in as: {name}'.format(name=user['name'])

Полное раскрытие, я поддерживаю беспорядок.

0

Я как-то нашел ответ. В результате я использовал OAuth :: Consumer в perl для подключения к tumblr API. Это самое простое решение, которое я нашел до сих пор, и оно просто работает.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню