-1

我正在 Windows 8 中构建 Metro 应用程序,我希望它能够与 Facebook 同步。我想在我的 jsp 文件中显示图片。在用户单击他收到的 facebook 通知后,将显示 jsp 文件。

当我只问用户的名字时,我成功了,但是当我问个人资料图片时,我遇到了障碍。

我为 Facebook 创建了一个 XMLHTTPRequest,Facebook 将我作为响应“JFIF”发送给我。

function getFacebookPicture(facebookUser) {
    var request = new XMLHttpRequest();
    var str = "https://graph.facebook.com/" + facebookUser.id + "/picture";
    request.open("GET", str, false);
    request.send();
    var response = request.responseText;
    return response;
}//getPic()

响应 = “JFIF”。

我收到并发送通知。

 function sendNotification2() {

    var uid = facebookUser.id;
    var picture = getFacebookPicture(facebookUser);


    var request = new XMLHttpRequest();
    var appID = "XXXXXX"; // the app id
    var appSecret = "YYYYYYYY"; // the app secret 
    var notificationContent = "YO yo yo"; // the message on the notification.
    var str = "https://graph.facebook.com/" +
        uid + "/notifications?access_token=" +
        appID + "|" + appSecret + "&href=?name=" + facebookUser.name +"?picture="+ picture + "&template=" +notificationContent + "&method=POST&format=json";

    request.open("GET", str, false);
    request.send();
    var response = request.responseText;
}

我得到的错误是

{
   "error": {
      "type": "OAuthException",
      "message": "An access token is required to request this resource."
   }
}

我在我的应用程序中添加了权限:read_friendlists、manage_notifications、publish_stream、offline_access、user_photos 登录时。

那么我怎样才能得到图片呢?

谢谢。

4

2 回答 2

1

当您查询此 URL 时 -

https://graph.facebook.com/USER_ID/picture

你没有得到图像的“路径”。你得到图像本身。我不确定您如何准确地实施个人资料图片,但我知道在常规网页上,只需将该 URL 放在src标签<img>中即可。

<img src="https://graph.facebook.com/4/picture" width="50" >

于 2012-10-08T10:16:03.340 回答
0
function getFacebookPicture(facebookUser) {
    return "https://graph.facebook.com/" + facebookUser.id + "/picture";
}//getPic()

从此处开始阅读以了解如何获取访问令牌。

于 2012-10-08T11:00:40.637 回答