#python #django #yahoo #yahoo-api
#python #django #yahoo #yahoo-api
Вопрос:
Есть ли официальный способ импортировать контакты из адресной книги пользователя из yahoo?
Для Google это действительно просто, как:
import gdata
contacts_service = gdata.contacts.service.ContactsService()
contacts_service.email = email
contacts_service.password = password
contacts_service.ProgrammaticLogin()
query = gdata.contacts.service.ContactsQuery()
query.max_results = GOOGLE_CONTACTS_MAX_RESULTS
entries = contacts_service.GetContactsFeed(query.ToUri())
Есть ли такой простой способ для yahoo?
Я нашел несколько решений, которые не используют api и выглядят странно для серьезной игры — например, ContactGrabber. Я нашел решения, для которых требуется токен BBAuth в приложении django-friends.
Но я хочу официальный, понятный способ получения пользовательских контактов из yahoo. Существует ли он?
UPD: Наконец, я избегаю использования api yahoo и использую django-openinviter для своих целей.
Но я все еще ищу примеры импорта пользовательских контактов с использованием api.
Ответ №1:
Интерфейс Contacts REST API довольно прост. Нужный вам URL-адрес
http://social.yahooapis.com/v1/user/{guid}/contacts.json
Вот скрипт, который будет извлекать данные для вас. Вы можете расширить это, чтобы включить аутентификацию.
import urllib2
import json
def get_contacts(guid):
url = 'http://social.yahooapis.com/v1/user/{}/contacts.json'.format(guid)
page = urllib2.urlopen(url)
return json.load(page)['contacts']['contact']
Комментарии:
1. Спасибо! Можете ли вы улучшить свое решение и рассказать, как получить guid?
2. Вы можете получить guid пользователя, отправив HTTP-запрос GET в social. yahooapis.com/v1/me/guid когда пользователь войдет в систему. См. раздел Разработчик. yahoo.com/social/rest_api_guide /…
3. Это было большим подспорьем! Спасибо. Я не знал, что у них есть этот API и API YQL (который было намного сложнее использовать). Я думаю, вам нужно оставить «.json» в конце и заменить его на «?format= json».
Ответ №2:
У Yahoo есть приличная документация о том, как получить доступ к своим API с помощью Python здесь . Информация там расскажет вам, как получить доступ к API-интерфейсам Yahoo с помощью YQL с помощью HTTP-запросов. Это означает прямое выполнение http-запросов и сообщений и самостоятельный анализ результатов. Тем не менее, у них также есть библиотека python, которая переносит эти вызовы сюда, но она не обновлялась с 13.10.2009, поэтому ваш пробег может отличаться.