我爲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