我正在开发一个应用程序,用户可以上传他们在活动中拍摄的网络摄像头照片。我可以将纯文本发布到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上传图像? :)这不是上传时间的问题,因为我已经等了一个多小时了,现在还没有上传。
答案 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