2011-09-04 78 views
3

使用Facebook的图形API,我通过表单上传从我的iframe应用程序中的照片:图形API PHP照片上传应用程序的端点/响应问题

echo '<form enctype="multipart/form-data" action="' 
.$graph_url .' "method="POST">'; 
echo 'Please choose a photo: '; 
echo '<input name="source" type="file"><br/><br/>'; 
echo 'Say something about this photo: '; 
echo '<input name="message" 
    type="text" value=""><br/><br/>'; 
echo '<input type="submit" value="Upload"/><br/>'; 
echo '</form>'; 

$ graph_url是这种形式像这样前的定义:

$graph_url= "https://graph.facebook.com/me/photos?" 
    . "access_token=" .$access_token; 

这就是工作,我可以用我的应用程序将照片上传至用户的特性,但是一旦图片上传到我的iFrame的内容被替换为图中的“响应”:

例如:

{ 
    "id": "1001207389476" 
    } 

我想避免这种情况显示,而是显示一个成功的屏幕显示可能链接到newely上传的图片也。

有谁知道我该怎么做?在过去的三天里,我一直在试图做我的头发!

仅供参考,这里是来自那里我得到了我的代码教程: https://developers.facebook.com/blog/post/498/http://thinkdiff.net/facebook/graph-api-iframe-base-facebook-application-development-php-sdk-3-0/

干杯。

回答

0

我能想到的一个解决方案就是您可以使用try catch块来捕捉照片上传代码。如果没有发生异常,并且您获得了上传的图片ID。您可以打印“照片上传成功”,而不是显示图片ID。

获取图片的链接。你确实需要使用你的图片ID。你可以尝试 graph.facebook.com/your-pic-id(可能带有一些access_token),并且在它里面,你可以得到这张图片的链接。

看到照片的图形API:HTTPS://developers.facebook.com/docs/reference/api/photo/

希望它能帮助。

+0

嗨,谢谢你的回复。我试图给这个前,但我不知道如何使用catch。我会继续阻止它。 – Andy

0

你试过在$ graph_url中定义一个redirect uri吗?不知道Facebook期望的参数的确切名称,但我认为它是redirect_uri。

Edit_:为了使问题更加清楚,Facebook将在Graph URL中查找该参数,并在您的请求完成后重定向到该URI。所以你可以定义http://yourdomain.com/yourapp/upload_finished.php。我不是100%确定他们是否也会将上传的照片的ID传递给此URI,但情况应该如此。

+0

你好。谢谢你的回复。我已经尝试过这一点,似乎重定向链接不起作用。在PHP中我并不太热,所以在我用过的Thinkdiff代码中可能会出现一些导致我的问题的东西,但我看不到它。 – Andy

0

将附加属性添加到表单标签: 您可以使用JavaScript完成所有任务,例如显示消息或成功屏幕。

+0

+0

嗨,谢谢你,我给了它一个快速尝试,但它看起来像我将不得不通过JavaScript提交表单,并停止defaultsubmit行动,否则我仍然会遇到同样的问题该功能已执行后。这听起来是对的吗? – Andy

+0

可能会使用提交按钮重新定位你?尝试标准按钮,并在JavaScript中调用表单提交。 http://w3schools.com/html/html_forms.asp –

相关问题