我为facebook开发了一个Flash测验应用程序,完成后会静默调用php脚本。 php脚本的功能是从flash发送的POST数据生成图像,然后将其发布到用户的墙上。
这将是所有整洁和花花公子,但由于某种原因图像永远不会上传,可能是因为当我调用它时,它就像http://www.myhost.com/appfolder/img-generate.php,并且里面的facebook SDK脚本得到Oauth错误,可能是因为它没有嵌入他们的画布。
我的问题是:
如果我想让我的php脚本生成图像并将其上传到fb墙,那么我应该如何从flash中调用它?
这是我目前正在使用的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-generate 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访问令牌签名。在第1039行的/home/a01223445/public_html/appfolder/base_facebook.php中引用
如果我通过facebook canvas查看相同的php,它的效果非常好。我的问题是:画布将显示闪存,我希望在闪存运行时静默评估php。
很抱歉这个很长的问题,
提前感谢您的帮助!
答案 0 :(得分:1)
我有同样的问题需要添加realpath()
$path = realpath('/'. $imgcode. '.jpg');
array(
'source' => "@" . $path,
...