我使用ShuttleCloud导入联系人,但他不支持使用联系人照片.由于ShuttleCloud给了我联系人ID,我很容易收到谷歌的联系人照片,但不能来自雅虎. (据我所知,微软不支持返回
contact photo的机制).
例如,我使用url获取有关联系人的信息:
my $url = 'https://social.yahooapis.com/v1/user/72KIKWBUXCMY6XVHD5B5UN52PU/contact/13?format=json';
然后我使用收到的网址获取GET图像:
my $url = 'http://social.yahooapis.com/v1/user/72KIKWBUXCMY6XVHD5B5UN52PU/contact/13/Image/2';
全部根据documentation.但雅虎在加速器上返回404 Not Found.如果我使用https代替http,雅虎将返回404 Not Found.
带GET请求的代码:
my $ua = LWP::UserAgent->new(); my $req = HTTP::Request->new(GET => $url); $req->header('Authorization' => 'Bearer '.$token); my $resp = $ua->request($req);
附:使用单个字段(名称,地址等)的所有请求都具有类似的返回码和错误.
我的范围:
联系方式 – 读/写;
社交目录(个人资料) – 读/写公共和私人.
解决方法
看起来雅虎联系人API大多已经死亡/破碎.
它在 book中有很好的记录,但实际上它的一些功能不再适用了.这些破坏的功能包括单字段请求(GET或PUT),字段收集请求(如/ contact / ID / emails)(再次,无论HTTP方法如何),以及您注意到图像提取.
仍然可以创建新联系人或删除现有联系人,因为多联系人和单联系人端点仍然存在.但是无法编辑现有联系人或获取联系人图像.
它在 book中有很好的记录,但实际上它的一些功能不再适用了.这些破坏的功能包括单字段请求(GET或PUT),字段收集请求(如/ contact / ID / emails)(再次,无论HTTP方法如何),以及您注意到图像提取.
仍然可以创建新联系人或删除现有联系人,因为多联系人和单联系人端点仍然存在.但是无法编辑现有联系人或获取联系人图像.
此外,此API不会设置任何CORS标头,这使得无法直接从浏览器使用此API.
(如何从雅虎方面修复:向API端点添加Access-Control-Allow-Origin:*标头.如何从客户端解决方法:使用后端作为代理)
有一个page,从他们的开发者主页链接,声称是documentation for a current version of Yahoo Social API,但这个页面也被打破了.它有“文档”和“论坛”的链接,两者都有空的href,导致同一页面.唯一可行的链接是前面提到的REST API书籍,标题为“Legacy API”.
摘要:
>可能有一些新版本的API,但它没有在任何地方记录,指定用于文档的页面被破坏.
>对于“旧”版本的API有一个很好的文档,但API本身并不完全正常.
>网络版的联系人应用程序(在Yahoo Mail中)使用自己的后端,而不是公共API,请求受Cookie保护,而不是OAuth密钥.因此,我们不能轻易使用此API,尽管它可能是获取所需信息的唯一工作方式.