2012-01-30 44 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, 
...