facebook actionscript graph api - 使用request_ids检索用户

时间:2011-04-15 10:49:16

标签: actionscript-3 actionscript facebook-graph-api

如果我使用Facebook.ui()允许用户选择他们的朋友,我怎样才能使用返回的request_ids数组来访问朋友/提要?

我尝试了以下内容:

Facebook.ui("apprequests", { message:"select some friends" }, handleAppRequest, "iframe");

允许选择朋友来讲述应用程序。然后我做以下事情:

private function handleAppRequest(result:Object):void
{
    Debug.logObject(result, this, "handleAppRequest");

    for (var i:int = 0; i < result.request_ids.length; i++)
    {
        var requestID:String = result.request_ids[i];
        Facebook.api("/" + requestID, handleRequestFriends); 
    }
}

选择结果对象中返回的朋友(我认为可能是我出错的地方),然后返回失败:

private function handleRequestFriends(success:Object, fail:Object):void
{
    if (success) trace("success");
    else trace(fail);
}

提前致谢 OB

编辑:(新用户无法回答他们自己的问题)

嘿嘿Michiel

啊,我知道了

应该如下:

Facebook.ui("apprequests", { message:"select some friends" }, handleAppRequest, "iframe");

private function handleAppRequest(result:Object):void
{
    for (var i:int = 0; i < result.request_ids.length; i++)
    {
        var requestID:String = result.request_ids[i];
        Facebook.api("/" + requestID, handleRequestFriends); 
    }
}

private function handleRequestFriends(success:Object, fail:Object):void
{
    if (success)
    {
        var values:Object = 
        { 
            access_token:Facebook.getSession().accessToken,
            name:"This is my title",
            link:"http://example.com",
            picture:"http://example.com/facebook/facebooktutorial/canvas/images/icon-75x75.gif",
            caption:"this is a caption",
            message:"This is a test message on " + new Date().toString()
        };

        var friendID:String = success.to.id;
        Facebook.api("/" + friendID + "/feed", handleSubmitFeed, values, URLRequestMethod.POST);
    }
    else
    {
        Debug.logObject(fail, this, "handleRequestFriends");
    }
}

有一个问题 - 我可以使用Facebook好友选择器,只返回结果,而不会向他们发送apprequest吗?

感谢 OB

1 个答案:

答案 0 :(得分:1)

我会再次建议您使用params发送access_token,就像上一个问题一样:)

private function handleAppRequest(result:Object):void
{
    Debug.logObject(result, this, "handleAppRequest");

    for (var i:int = 0; i < result.request_ids.length; i++)
    {
        var requestID:String = result.request_ids[i];
        var _params:Object = new Object();
        _params.access_token = Facebook.getSession().accessToken;
        Facebook.api("/" + requestID, handleRequestFriends, _params, "GET"); 
    }
}

并且我假设您正在尝试吸引用户,因为如果您想要发布到他们的Feed中,您应该只使用

var _params:Object = new Object();
_params.access_token = Facebook.getSession().accessToken;
_params.message = _message;
Facebook.api("/" + requestID + "/feed", handleRequestFriends, _params, "POST"); 

编辑:顺便说一句:你确定你用这种方法得到了正确的id吗? (之前没有访问好友列表,所以我不知道)。