AS3:将图像上传到Facebook - 图谱API

时间:2014-11-13 20:00:09

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

我正在开发一个应用程序,用户可以上传他们在活动中拍摄的网络摄像头照片。我可以将纯文本发布到Facebook,但问题是我无法上传图片。我使用以下代码:

获取位图并将其编码为bytearray为jpg

public function set source(bmp:Bitmap):void {
    var encoder:JPEGEncoder = new JPEGEncoder(75);

    _bitmap = encoder.encode(bmp.bitmapData);
    img.source = bmp;
}

发布到Facebook

private function postFB(e:Event=null):void {
    var _params:Object = new Object();

    _params.uid = Facebook.getAuthResponse().uid;
    _params.access_token = Facebook.getAuthResponse().accessToken;
    _params.message = "I was at the Thanksgiving Day Event! #GobbleGobble";
    _params.fileName = "gobble.jpg";
    _params.image = _bitmap;

    Facebook.api("/me/feed", postComplete, _params, "POST");
}

上述代码不起作用。如果我在评论中放置_params.image = _bitmap;,则会将消息发布到我的墙上。我使用GraphAPI_Web_1_8_1.swc。我使用以下权限:

  

{perms:" read_stream,publish_actions,user_photos,photo_upload"};

任何想法我做错了什么?或者我应该如何使用GraphAPI上传图像? :)这不是上传时间的问题,因为我已经等了一个多小时了,现在还没有上传。

2 个答案:

答案 0 :(得分:1)

我通过使用php脚本将图像保存到我的服务器然后使用图像的直接链接发布到Facebook来解决了这个问题。

答案 1 :(得分:1)

您需要将图像ByteArray上传为multipart / form-data请求。这是我的代码,使用this tool

Private Sub Worksheet_Change(ByVal Target As Range)
    Application.EnableEvents = False
    If Target = Range("A1") Then
        If Not (Target >= 1 And Target <= 10) Then
            Application.Undo
            MsgBox "Please enter value between 1 to 10", vbOKOnly + vbCritical
        End If
    End If
    Application.EnableEvents = True
End Sub