我使用 ShuttleCloud
导入联系人,但他不支持处理联系人照片。由于 ShuttleCloud 给我联系 ID,我很容易从谷歌收到联系照片,但不能从雅虎收到。 (据我所知,微软不支持返回 contact photo 的机制)。
例如,我使用 url 获取有关联系人的信息:
my $url = 'https://social.yahooapis.com/v1/user/72KIKWBUXCMY6XVHD5B5UN52PU/contact/13?format=json';
然后我使用收到的 url 获取图像:
my $url = 'http://social.yahooapis.com/v1/user/72KIKWBUXCMY6XVHD5B5UN52PU/contact/13/Image/2';
全部根据documentation .但是 Yahoo 返回 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);
附言所有使用单一字段(姓名、地址等)的请求都有相似的返回码和错误。
我的范围: 联系人 - 读/写; 社交目录(配置文件)- 读/写公共(public)和私有(private)。
最佳答案
看起来Yahoo contacts API 大部分已失效/损坏。
在他们的 book 中有详细记录,但实际上它的某些功能 [不再] 不再起作用。这些损坏的功能包括单字段请求(GET
或 PUT
)、字段收集请求,如 /contact/ID/emails
(同样,无论 HTTP 方法如何),以及您注意到的图像获取。
仍然可以创建新联系人或删除现有联系人,因为多联系人和单联系人端点都处于事件状态。但是无法编辑现有联系人或获取联系人图片。
此外,此 API 不设置任何 CORS
header ,因此无法直接从浏览器使用此 API。
(如何从 Yahoo 端修复:将 Access-Control-Allow-Origin: *
header 添加到 API 端点。如何从客户端解决:使用后端作为代理)
有一个page ,从他们的开发者主页链接,该主页声称是 documentation for a current version of Yahoo Social API ,但此页面也已损坏。它有指向“文档”和“论坛”的链接,两者都带有指向同一页面的空 href
。唯一有效的链接是前面提到的标有“Legacy API”的 REST API 书籍。
总结:
- 可能有一些新版本的 API,但没有在任何地方记录,指定用于记录的页面已损坏。
- “旧”版本的 API 有很好的文档,但 API 本身功能不全。
- 网络版的联系人应用(在 Yahoo Mail 中)使用自己的后端,而不是公共(public) API,并且请求受到 cookie 而非 OAuth key 的保护。因此,我们不能轻易使用此 API,尽管它可能是获取所需信息的唯一有效方式。
关于perl - 从 Yahoo API 获取联系人照片时出现 404 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31156150/