用Python从Yahoo导入联系人

1 投票
2 回答
1414 浏览
提问于 2025-04-17 03:51

有没有官方的方法可以从用户的雅虎通讯录导入联系人?

对于谷歌来说,这个过程非常简单,比如:

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())

那么雅虎有没有这么简单的方法呢?

我找到了一些解决方案,它们不使用官方的API,看起来对于一个严肃的项目来说有点奇怪,比如 ContactGrabber。还有一些解决方案需要BBAuth Token,比如在 django-friends应用中。

但是,我想要一个官方的、清晰的方法来从雅虎获取用户的联系人。这样的方式存在吗?

更新:最后我决定不使用雅虎的API,而是使用 django-openinviter 来满足我的需求。

不过我仍然在寻找使用API导入用户联系人的例子。

2 个回答

2

雅虎有一些不错的文档,教你如何用Python访问它的API,你可以在这里找到。文档里会告诉你怎么通过YQL用http请求来访问雅虎的API。这意味着你需要自己直接发送http的GET和POST请求,然后解析返回的结果。不过,他们也提供了一个Python库,可以帮你简化这些调用,你可以在这里找到这个库,但这个库自2009年10月13日以来就没有更新过,所以使用效果可能会有所不同。

4

联系人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']

撰写回答