从Yahoo API获取联系人照片时出现404错误

Kos*_*ndr 5 perl http contacts yahoo-api

ShuttleCloud用于导入联系人,但他不支持使用联系人照片。由于ShuttleCloud为我提供了联系人ID,因此我很容易从Google接收到联系人照片,但无法从Yahoo获得。(据我了解,Microsoft不支持退回联系人照片的机制)。

例如,我使用url获取有关联系人的信息:

my $url = 'https://social.yahooapis.com/v1/user/72KIKWBUXCMY6XVHD5B5UN52PU/contact/13?format=json';
Run Code Online (Sandbox Code Playgroud)

然后,我将收到的网址用于GET图片:

my $url = 'http://social.yahooapis.com/v1/user/72KIKWBUXCMY6XVHD5B5UN52PU/contact/13/Image/2';
Run Code Online (Sandbox Code Playgroud)

全部根据文档。但是雅虎又回来了404 Not Found on Accelerator。如果我使用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);
Run Code Online (Sandbox Code Playgroud)

PS所有使用“单个字段”(名称,地址等)的请求都具有相似的返回码和错误。

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

Mar*_*oft 2

看起来雅虎联系人 API 大部分已失效/损坏他们的书中对此进行了详细记录,但实际上它的某些功能[不再]起作用。这些损坏的功能包括单字段请求(或者GETPUT、字段集合请求/contact/ID/emails(同样,无论 HTTP 方法如何)以及您注意到的图像获取。仍然可以创建新的联系人或删除现有的联系人,因为多联系人和单联系人端点都处于活动状态。但无法编辑现有联系人获取联系人图像

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

有一个页面,从他们的开发者主页链接,声称是当前版本的 Yahoo Social API 的文档,但该页面也已损坏。它具有指向“文档”和“论坛”的链接,两者都带有href指向同一页面的空链接。唯一有效的链接是前面提到的 REST API 书籍,该书标记为“Legacy API”。

概括:

  • 可能有一些新版本的 API,但没有在任何地方记录,指定用于文档的页面已损坏。
  • 对于“旧”版本的 API 有一个很好的文档,但 API 本身功能并不完整。
  • 网络版联系人应用程序(在雅虎邮件中)使用自己的后端,而不是公共 API,并且请求通过 cookie 而不是 OAuth 密钥进行保护。因此,我们无法轻松使用此 API,尽管它可能是获取所需信息的唯一有效方法。

UPD:在TwitterUservoice上询问他们,请投票。希望最终有人会研究这个问题。