2012-01-30 110 views
1

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

對不起,長期的問題,

謝謝你的幫助提前!

+0

如果你看一下'setFileUploadSupport'功能的源代碼,你會看到,這是意味着是一個'boolean'同樣的問題值。將其設置爲「true」。 – Lix 2012-01-30 20:50:25

+0

另外 - 您是否具有從應用程序中發佈故事程序所需的'publish_stream'權限? – Lix 2012-01-30 20:51:31

+0

我以前通過index.php獲得了publish_stream,但現在我會嘗試一下你所說的,然後回報。 (有趣的是,相同的代碼片段適用於我所有的其他應用程序 - 儘管它們是從畫布內部啓動的) – theAdam 2012-01-30 22:54:43

回答

1

我有我需要添加的真實路徑()

$path = realpath('/'. $imgcode. '.jpg'); 
array(
     'source' => "@" . $path, 
...