我为facebook开发了一个Flash测验应用程序,完成后会默认地调用一个php脚本。 php脚本的功能是根据闪存发送的POST数据生成图像,然后将其发布到用户的墙上。通过外部php脚本将图片上传到Facebook
这将是所有整齐和花花公子,但由于某种原因,图像永远不会上传,可能是因为当我打电话时,它就像http://www.myhost.com/appfolder/img-generate.php,而facebook SDK脚本里面得到一个Oauth错误,可能是因为它没有嵌入在他们的画布上。
我的问题是:
如果我想有我的PHP脚本生成的图像,并把它上传到FB墙,那我应该怎么称呼它从闪存?
这是我使用的是目前AS2代码:
callRemoteFile = function(ourVariable:Number) {
var result_lv:LoadVars = new LoadVars();
result_lv.onLoad = function(success:Boolean) {
if (success) {
if (result_lv.message=="success")
trace("done! "+result_lv.returnValue);
else
trace(result_lv.message);
} else {
trace("Error connecting to server");
return false;
}
};
var send_lv:LoadVars = new LoadVars();
send_lv.ourVariable = ourVariable;
send_lv.sendAndLoad(" http://www.myhost.com/appfolder/img-generate.php", result_lv, "POST");
}
callRemoteFile(String(health.toString()));
,这是IMG-生成PHP(我省略了大部分的图像功能和POST数据的获取,因为他们无关这里我的问题):
include 'facebook.php';
$app_id = "111111111111111";
$app_secret = "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa";
$facebook = new Facebook(array(
'appId' => $app_id,
'secret' => $app_secret,
'cookie' => true,
));
$date = date("ymdHis");
$im = imagecreatefromjpeg('myimg.jpg');
imagejpeg($im,'temp/'. $date . md5($ida) . '.jpg');
$facebook->setFileUploadSupport(
"http://" . $_SERVER["SERVER_NAME"]
);
$photo = $facebook->api("/me/photos", "POST", array(
source => "@" . 'temp/'. $date . md5($ida) . '.jpg',
message => "Something to display with the image"
));
如果我只是导航到我的浏览器的PHP时,送礼者我:
致命错误:未捕获OAuthException:无效的OAuth存取权限s令牌签名。扔在/行1039上的/home/a01223445/public_html/appfolder/base_facebook.php
如果我通过facebook画布查看相同的php,它可以很好地工作。我的问题是:画布将显示闪光灯,并且我希望在闪光灯运行时无提示地评估php。
对不起,长期的问题,
谢谢你的帮助提前!
如果你看一下'setFileUploadSupport'功能的源代码,你会看到,这是意味着是一个'boolean'同样的问题值。将其设置为“true”。 – Lix 2012-01-30 20:50:25
另外 - 您是否具有从应用程序中发布故事程序所需的'publish_stream'权限? – Lix 2012-01-30 20:51:31
我以前通过index.php获得了publish_stream,但现在我会尝试一下你所说的,然后回报。 (有趣的是,相同的代码片段适用于我所有的其他应用程序 - 尽管它们是从画布内部启动的) – theAdam 2012-01-30 22:54:43