使用 Facebook Graph API 上传照片时出现异常

2023-12-11

我想在应用程序的默认相册中将用户的照片上传到 Facebook。此处的发布对此进行了描述:http://developers.facebook.com/docs/reference/api/photo

该方法已在这里得到解答:如何使用 Facebook Graph API 将照片上传到相册。我正在使用以下内容:

$args = array(
  'message' => 'Photo Caption', 
  'image' => '@'.realpath("image.png")
);
$data = $facebook->api('/me/photos', 'post', $args);

但是,当我尝试执行此操作时,我收到异常“(#324) 需要上传文件”。我有一个有效的会话,并且有publish_stream 和 user_photos 权限。我可以使用 API 检索数据。该图像文件绝对有效,因为它可以加载file_get_contents(realpath("image.png")).

我已经尝试过这个解决方案,使用curl,它工作得很好:使用 Facebook 的 Graph API 将照片上传到相册

$args = array(
  'message' => 'Photo from application',
  'pic.png' => '@'.realpath('pic.png')
);
$tok = $session['access_token']
$url = 'http://graph.facebook.com/'.$album_id.'/photos?access_token='.$tok;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $args);
$data = curl_exec($ch);

与 Facebook 的 PHP SDK curl 相比,如下所示(使用相同的 $args 和 $url):

$ch = curl_init();
$opts = self::$CURL_OPTS;
$opts[CURLOPT_POSTFIELDS] = http_build_query($args, null, '&');
$opts[CURLOPT_URL] = $url;
curl_setopt_array($ch, $opts);
$data= curl_exec($ch);

为什么 PHP 版本不起作用?看起来 http_build_query() 函数正在干扰加载图像。我对curl了解不够,无法理解这里发生的事情。


我很高兴我遇到了同样的问题 您必须将 fileUpload 参数设置为 true !

$facebook = new Facebook(array(
            'appId'  => $facebookapi_id,
            'secret' => $facebookapi_secret,
            'fileUpload' => true,
            'cookie' => true
          ));  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 Facebook Graph API 上传照片时出现异常 的相关文章

  • 对具有混合类型值的数组进行数字排序

    我有一个像这样的混合数组 fruits array lemon Lemon 20 banana apple 121 40 50 然后申请sort 其功能如下 sort fruits SORT NUMERIC foreach fruits a
  • 使用 JavaScript 在 HTML 表中动态添加行并通过提交按钮获取每个文本框的文本框值

    我有一个可以动态添加行的表 当我提交保存按钮时 我想将每行中的数据获取到 php 数组 请有人帮我解决这个问题 我是java脚本的新手 对此知之甚少 谢谢你
  • 如何使用 Laravel Eloquent 创建多个Where子句查询?

    我正在使用 Laravel Eloquent 查询构建器 并且我有一个查询 我想要一个WHERE多个条件的子句 它可以工作 但并不优雅 Example results User where this 1 gt where that 1 gt
  • octobercms 任务调度不起作用

    我正在使用基于 Laravel 的 OctoberCMS 我没有 SSH 访问我的服务器的权限 每天我需要删除一些注册后 24 小时内未激活帐户的用户 所以我正在考虑使用任务调度 如 cronjobs 根据 10 月 CMSdocs htt
  • 第一个选项为空的选择框

    如何将选择框中的第一个选项设置为空值 我正在从数据库获取数据 我想将选项默认设置为 请选择一个选项 我找到 default gt Please select 不适用于 HTML5 必需属性 这确实有效 listOfValues 1 gt C
  • 创建一个基于简单文本文件的搜索引擎

    我需要尽快创建一个基于简单文本文件的搜索引擎 使用 PHP 基本上它必须读取目录中的文件 删除停止词和无用词 为每个剩余的有用词及其在每个文档中出现的次数建立索引 我猜这个的伪代码是 for each file in directory r
  • 如何从MySQL数据库获取今天/昨天的数据?

    我想从数据库中检索今天的数据 但我不知道该怎么做 我实际上想要获取不是过去 24 小时的数据 我只想获取今天的数据 因此基于实际服务器时间 我还想获取昨天的数据 谁能帮我怎么做 示例代码 SELECT id FROM folk WHERE
  • 无法使用 php 将大文件上传到服务器

    我无法将大文件加载到服务器 问题出在该文件中 FILES filename tmp name 如果文件稍大于 2mb 则为空 我尝试更改 php ini 中的变量 upload max filesize 700M post max size
  • Joomla getUser() 不显示更新的用户数据

    下面的代码允许我在用户的 Joomla 个人资料的个人资料页面中显示用户名 鉴于我已经覆盖了模板以获得我想要的外观和感觉 user JFactory getUser if user gt guest echo You are logged
  • “yum install php”需要 httpd-mmn = 20051115

    我从源代码安装了 httpd apache 2 4 6 现在我想安装 PHP 但yum install php吐出错误 Error Package php 5 3 3 40 el6 6 x86 64 updates Requires htt
  • 如何从表中选择所有偶数 id?

    我想从 MySQL 数据库的表中选择所有甚至帖子 ID 然后显示它们 我还想获取所有带有奇怪 id 的帖子并将它们显示在其他地方 我想使用 PHP 来完成此操作 因为这是我使用的服务器端语言 或者 我是否必须选择所有帖子 然后使用 Java
  • 在 PHP 中将对象作为参数传递[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 带有列标题的php数组到csv的转换

    我想将数组转换为 csv 我能够将关联数组转换为 csv 但无法获取标题 我想要动态地将数字类型日期作为标题 下面是我转换的数组 Array 0 gt Array NUMBER gt 67 TYPE gt Other DATE gt 3 3
  • Laravel + AngularJS Nginx 路由

    我有以下问题 我需要配置Nginx 这样在任何URL用户访问时 它都会保留uri 例如domain com some url 但仅传递给 laravel 并让 Angular 处理路由 Route get function return v
  • 如何将自托管 WordPress 和已安装的实时站点插件升级到最新可用版本而不遇到任何麻烦?

    我必须升级正在运行的 WordPress 网站的 WordPress CMS 和一些已安装的插件 并且我想要升级的一些插件之前已被修改以实现某些目标 http easycaptures com fs uploaded 288 9522279
  • 显示产品中的类别名称和类别 ID - Laravel

    我已经找到了这个答案 但它对我不起作用 Laravel 按 id 显示类别 https stackoverflow com questions 39222584 laravel displaying categories by id 我无法
  • vagrant box速度慢,如何改进?

    我们已经为我们的开发盒构建了一个 vagrant box 但我们面临着一些延迟问题 Issues Assetic 手表速度很慢 app dev php 中的整体应用程序访问速度很慢 在 vagrant box 的共享文件夹中使用 查找 命令
  • 对文本变量进行数学求和? (例如 5865/100 )

    我有一个变量是 whatever 5865 100 这是一个文本变量 我希望它计算 5865 100 以便我可以将其添加到其他数字并进行计算 Number format 不起作用 因为它只返回 5 865 而我希望它返回 58 65 我可以
  • 未找到 mysqli 类

    我用过mysqli连接到我的应用程序中的数据库 几天前一直运行良好 突然出现以下错误 致命错误 找不到类 mysqli 我用来连接数据库的行是 link new mysqli localhost uname password scripts
  • 在网络托管上发布后,php 会话无法正常工作

    我的网站在本地主机上运行良好 但是一旦我将其部署到我的托管服务 会话就会停止工作

随机推荐

  • 如何在 AngularJS 中编写去抖动服务

    underscore 库提供了防抖功能 可以防止在设定的时间内多次调用某个函数 他们的版本使用了 setTimeout 我们如何在纯 AngularJS 代码中做到这一点 此外 我们可以利用 q 风格的 Promise 在去抖期之后从被调用
  • 泽西岛客户端 API 问题

    我正在编写一个调用 Web 服务的 Android 客户端 该服务是使用 JAX RS Jersey API 编写的 我还尝试在 android 端使用 Jersey Client API Client client Client crea
  • 区域设置构面构造函数被忽略

    The locale Facet构造函数 构造 other 的副本 但从参数 Facet 安装的 Facet 类型的 Facet 通常从参数的类型推导 除外 如果facet为NULL 则构造的语言环境是其他语言环境的完整副本 以这种方式构建
  • 春季批次。如何获取正在处理的元素的数量

    我们使用 Spring Batch 将 XML 文件的元素存储到数据库中 将元素插入数据库时 是否可以检索正在处理的元素的编号 澄清一下 这是我的工作配置
  • LSTM/GRU 自动编码器收敛

    Goal 尝试在多元时间序列数据集上运行 LSTM 自动编码器 X train 200 23 178 X val 100 23 178 X 测试 100 23 178 现在的情况 普通的自动编码器比简单的 LSTM AE 架构可以获得更好的
  • 更新 matplotlib 中的图形坐标

    我下面有一个将绘制球体的代码 它的比例由下式定义prop 我希望这样当按下按钮时prop的值更改为 5 并且图表也会相应调整 我该怎么办 我知道 tkinter 有 配置 它允许调整小部件设置 我正在寻找类似的东西 以便我可以重新配置我的情
  • 微前端/多存储库角度中的 Webpack 外部模块在构建时出现错误

    我创建了一个 Angular 项目来从其他正在运行的 Angular 项目调用微前端 我已使用 webpack config js 在我的应用程序中导入该模块 它在本地运行良好 但在生产构建中失败 当我运行 ng build 时 它会抛出异
  • 以编程方式将 .PFX 转换为 .PEM?

    我需要以编程方式从 MS 证书存储中提取证书及其私钥 并以某种方式将它们转换为 PEM 格式 我不想在命令行中使用 OpenSSL 因为我想将所有内容保留在内存中 避免使用文件 我可以使用 PFXExportCertStoreEx 将它们从
  • 如何编写自定义 servlet 上下文 init 方法

    我希望在 servlet 上下文初始化阶段使用 servletContext setAttributes 设置一些应用程序范围的变量 我怎样才能实现这一点 实施javax servlet SevletContextListener当java
  • 的原始用途? [关闭]

    Closed 这个问题是无关 目前不接受答案 我很好奇这样做的初衷
  • spring security 5.1 oauth 2,如何向用户身份验证uri添加附加参数

    我正在尝试集成外部 oauth 2 身份验证服务器和资源服务器 它们的配置需要一些额外的自定义参数 state 应该是 uuid TimeStamp accessType 并且 clientSecret 应该使用所有先前参数的组合作为数据进
  • 根据用户选择/提示检索 JSON 数据

    我试图让用户做出选择 并根据该选择深入研究 JSON 数据并显示所选信息 最终 我想在 html 中创建一个下拉选择 并在 Javascript 中创建一个事件监听器 然后进行检索 var userOcean prompt Will you
  • 同时访问变量

    我需要从多个回调 事件处理程序 中增加全局变量 这些回调可能会同时触发 我需要担心同时访问该变量吗 有没有像 C 中的 Interlocked Increment 类似的东西 JavaScript 中有 Interlocked Increm
  • 如何发送 HL7 ACK 消息作为 TCP 响应?

    我通过 TCP 连接接收 HL7 消息 这些消息始终是 ADT 类型 我使用 Kestrel 来监听这些消息 并使用 NHAPI 包来处理它们 我拿了David Fowler 的 Kestrel 示例代码设置 TCP 侦听器 所以基于这个示
  • 使用 Ajax 将 Javascript 变量传递给 PHP

    我目前正在开发一个使用 Ajax 的现有脚本 这是我以前从未使用过的 我在 javascript 文件中设置了一个变量 它从页面上的输入字段获取其值 我需要使用 Ajax 将其发布到我的 PHP 页面 但我不知道从哪里开始 我不确定您需要看
  • 不带控制器后缀的控制器

    根据我的设计要求 我想从控制器中排除后缀 Controller 并将其替换为 Resource 这样 FundsController 将成为 FundsResource 问题是 当我更改替换术语 控制器 时 我无法通过基于约定或属性路由路由
  • 寻找一个javascript解决方案来重新排序div

    我在页面中有一些div显示相同类型的不同内容 例如优惠 现在优惠有结束时间 还有发布时间 如果用户想按结束时间或发布时间排序 则应重新排序 我正在寻找一个可以做到这一点的javascript解决方案 Ext JS或JQuery下的任何特定库
  • 即使刷新页面后如何记住表单中的输入数据?

    为了使表单记住用户之前的输入或当前的输入 即使在他 她刷新页面后 该怎么做 我应该做什么 div class row div
  • 如何让 Eclipse 显示我的类中的 javadoc,而不在 jar 中包含源代码

    我正在构建 jar 我想在没有源的情况下打包它们 但我希望在 eclipse 中为开发人员提供 javadoc JAR 的用户可以在使用 JAR 的 Java 项目的 Java 构建路径属性中将 Javadoc 位置 存档内的 URL 文件
  • 使用 Facebook Graph API 上传照片时出现异常

    我想在应用程序的默认相册中将用户的照片上传到 Facebook 此处的发布对此进行了描述 http developers facebook com docs reference api photo 该方法已在这里得到解答 如何使用 Face