来自Yahoo API的GET联系人照片时出现404错误

时间:2015-07-01 08:23:49

标签: perl http contacts yahoo-api

我使用ShuttleCloud作为导入联系人,但他不支持使用联系人照片。由于ShuttleCloud给了我联系人ID,我很容易收到谷歌的联系人照片,但不能来自雅虎。 (据我所知,microsoft不支持返回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 on Accelerator。如果我使用https而不是http,则Yahoo会返回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);

P.S。所有使用单字段(名称,地址等)的请求都有类似的返回码和错误。

我的范围: 联系方式 - 读/写; 社交目录(个人资料) - 读/写公共和私人。

1 个答案:

答案 0 :(得分:1)

Yahoo Contacts API似乎已失效/损坏。 在他们的book中有充分的文档说明,但实际上它的某些功能不再起作用。这些损坏的功能包括单字段请求(GETPUT),诸如/contact/ID/emails之类的字段收集请求(同样,无论HTTP方法如何),以及您注意到的图像提取。 仍然可以创建新的联系人或删除现有的联系人,因为多触点和单触点端点仍然有效。但是无法编辑现有联系人获取联系人图片

此外,此API并未设置任何CORS头,因此无法直接从浏览器使用此API。 (如何从Yahoo端修复:将Access-Control-Allow-Origin: *标头添加到API端点。如何从客户端解决:将后端用作代理)

有一个page,从开发人员的主页链接到该页面,该页面声称是documentation for a current version of Yahoo Social API,但此页面也已损坏。它具有指向“文档”和“论坛”的链接,两个链接都带有空白的href导致指向同一页面。唯一有效的链接是上述REST API书籍,该书籍被标记为“旧版API”。

摘要:

  • 可能有一些新版本的API,但未在任何地方进行文档说明,用于文档的页面已损坏。
  • “较旧”版本的API有很好的文档,但是API本身并不完全起作用。
  • Web版本的Contacts应用程序(在Yahoo Mail中)使用其自己的后端,而不是公共API,并且请求受cookie(而非OAuth密钥)保护。因此,尽管它可能是获取所需信息的唯一可行方法,但我们不能轻易使用此API。

UPD :在TwitterUservoice中问他们,请投票。希望有人会最终调查这个问题。