【问题标题】:how to upload image created using php to users timeline on facebook如何将使用 php 创建的图像上传到 Facebook 上的用户时间轴
【发布时间】:2013-01-27 12:26:25
【问题描述】:

我开发了一个包含以下文件的 facebook 应用程序 1) 索引.php 2) cap3.php 其中 cap3.php 在 PHP 中使用 GD 生成图像。 index.php 使用以下代码显示此图像

<img src="cap3.php">

现在我希望将此生成的图像发布在用户的时间轴上。 我试图通过使用以下代码来做到这一点:

$facebook->setFileUploadSupport(true);
$img = 'cap3.php';
$args=array( 'source' => '@' .$current , 'message' => 'Photo uploaded via!' );
$photo = $facebook->api('/me/photos', 'POST', $args);

但图片未发布在用户的时间线上 请帮忙。

【问题讨论】:

  • 您从 Facebook API 得到什么响应?
  • 当您将 .php 文件作为图像源文件提供时,该文件中的任何代码都不会被解释 - 这不是通过 HTTP 访问该脚本的情况,所以只有未解析的 PHP 代码会被发布到 Facebook,当然他们不会将其识别为有效的图像文件。您要么必须在本地保存该图像数据,然后将该文件用作source;或者您必须通过 HTTP 公开图像脚本并以某种方式(GET/Session)将必要的数据传递给它,然后让 Facebook 自己读取它,方法是将其 URL 作为参数url 而不是source

标签: php gd facebook-apps


【解决方案1】:

一种方法是将您的cap3.php 文件放在远程主机中以获取指向它的URL。例如:http://www.example.com/cap3.php。然后,您从您的应用下载该图像并将其发送到 facebook。

我们来看一个例子:

$local_img = 'cap3.png'; // I assume your cap3.php generates a PNG file
$remote_img = 'http://www.example.com/cap3.php';

// sample: check for errors in your production app!
$img_content = file_get_contents($remote_img);
file_put_contents($locale_img, $img_content);

$facebook->setFileUploadSupport(true);
$args=array( 'source' => '@' .$locale_img , 'message' => 'Photo uploaded via!' );
$photo = $facebook->api('/me/photos', 'POST', $args);

【讨论】:

  • 注意:我不知道'source' =&gt; '@'&lt;path&gt; 是否采用真实路径,但你会明白的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多