【发布时间】:2012-03-09 20:26:00
【问题描述】:
TL;DR
- 使用 FB JavaScript API 在网页上查看朋友的个人资料图片相册中的图片
- 页面将 URL 传递给服务器,但服务器无法从 URL 下载图像(HTTP STATUS 0)
- 用户肯定同时登录了 JS api 和 PHP-SDK API 并且有 FB 照片权限
- 当前的个人资料图片效果很好
- 此问题不会影响所有用户,只会影响部分用户。
我的 Facebook 照片应用
我的应用会为您朋友的 Facebook 图片创建视频蒙太奇。
应用请求权限:
- “用户照片”
- 和“friends_photos”。
用户在浏览器中使用 Javascript 选择要添加到蒙太奇的图片。然后我将所选图像的 URL 传递给服务器,服务器从 URL 下载图像并将其存储在 Amazon S3 上。
一切都适用于客户端,并且始终适用于朋友的个人资料图片。但是对于其他图像,即来自相册或以前的个人资料照片的图像,我的服务器根本无法下载图像。
使用cURL,返回的状态码为0,其他图片为200。
我如何才能访问这些图像?服务器是否需要传递一些其他数据才能访问 CDN 图像?
从我的 JS 传递的图像 URL 是长链接,如下所示:http://fbcdn-sphotos-a.akamaihd.net/hphotos-ak-ash4/s720x720/408158_894440624792_192203432_41161655_469457024_n.jpg (虽然这不是一个真实的图片链接)
我可以在浏览器中正常打开图片,但无法在服务器端打开。
我正在使用 PHP-SDK,因此服务器已通过 Facebook 对登录用户进行身份验证。我知道这是正确的,因为我尝试了多个帐户并检查了当前登录的用户 ID。
要下载,我尝试了 cURL、file_get_contents 和其他几种方法。所有人都没有收到任何东西,因此我认为 Facebook 不会让我的服务器访问图片。
奇怪的是,这个问题似乎只影响部分用户,而不是所有人。
另外 - 我的服务器是 PHP 5.2 并且在 IIS 上运行。
任何帮助都会很棒!
更多信息: 我尝试在使用另一个用户帐户登录时访问该 URL,该用户不是照片所有者的朋友,他们也可以在浏览器中看到该图像。奇怪的是我的服务器不能。
【问题讨论】:
-
我也不能在浏览器中打开这个(长)!
-
图片不是有效的 URL。我只是举了一个例子来展示我看到的 url 的格式。
标签: php facebook facebook-graph-api facebook-php-sdk