使用 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 上传照片时出现异常 的相关文章

  • AWS S3从本地主机批量上传php错误

    我在尝试着批次 散装从本地主机 xampp 上传到我的S3 bucket 它似乎适用于大约 6 个项目 然后我收到一条错误消息 cURL 错误说Failed sending network data from http curl haxx
  • Magento:如何在 CMS 页面中包含 php 调用

    按照此页面的说明进行操作 http www magento cc how to use php on a cms page html http www magento cc how to use php on a cms page html
  • 从 Facebook Account Kit 获取电话号码

    Account Kit 文档指出 如果您使用 AccountKitActivity ResponseType TOKEN 开始登录会话 则可以通过调用 getCurrentAccount 来访问当前帐户的 Account Kit ID 电话
  • PHP 读取使用 setcookie() 创建的 cookie

    来自manual https www php net setcookie 直到下一次加载 Cookie 应该可见的页面之前 Cookie 才会变得可见 这意味着创建的 cookiesetcookie将无法访问 COOKIE直到下一页加载 有
  • zend 表单验证

    我想知道 Zend Form 如何验证输入 我的意思是它如何知道要验证哪些输入字段 我查看了 php 全局变量 POST GET 但没有看到任何设置为标识符 例如 的内容 以便了解如何验证 有人能给我推荐一些关于这些东西的指南吗 好吧 找出
  • 使用 Facebook API 和 Objective C 来查找随机 Facebook 用户图像

    我正在构建一个返回随机 Facebook 个人资料图片的应用程序 到目前为止 我有下面的代码生成一个随机个人资料 ID 有时会返回真实的个人资料 但有时不会 只显示通用的蓝色 Facebook 面孔 当我在实际网站图形 API 上使用给定的
  • 如何在没有 session_destroy 的情况下销毁 Zend_Session_Namespace

    我使用以下方法在临时会话中存储一些值 job new Zend Session Namespace application 我如何只销毁会话应用无需清除所有会话 要从会话中删除值 请对对象属性使用 PHP 的 unset 函数 假设 job
  • 如何使用 php DOM 获取 内的值?

    我如何使用 php DOM 获取 内的值 这是我的 xml 中的一些代码
  • 在php中获取大于2GB的文件大小的最佳方法?

    我想检查本地驱动器上的文件大小windows OS 但是PHP原生函数filesize 仅当文件大小小于时才有效2GB 大于的文件2GB将返回错误的数字 那么 是否有其他方法来获取大于的文件大小2GB 非常感谢 您始终可以使用系统的文件大小
  • 使用 Facebook 进行身份验证的网站的 REST API

    我们有一个网站 其中only登录网站并进行身份验证的方式是使用 Facebook 这不是我的选择 当您第一次登录 Facebook 时 系统会自动为您创建一个帐户 现在 我们希望为我们的网站创建一个 iPhone 应用程序 并为其他人使用我
  • 查明具有特定 ID 的会话是否已过期

    我正在创建一个上传功能 将用户上传的文件存储在服务器上 并以用户的会话 ID 作为名称 现在 我只想将此文件保留在服务器上 直到该会话处于活动状态 所以 我的问题是 如何根据会话 ID 确定会话是活动的还是过期的 以便在后一种情况下我可以安
  • PHP Github Pull 脚本错误“权限被拒绝(公钥)”

    我已经设置了一个 PHP 脚本来执行 GitHub 拉取 这包含在我的 Github 文件夹中 home mysite public html github github pull php 我的服务器已经有 SSH 公钥 就像我执行git
  • Apache 子进程已退出,状态为 255

    经过大量的搜索 尝试 修复 等待和哭泣 在我放弃之前 我想为这个错误抓住最后的机会 我们正在奔跑Microsoft Windows Server 2012 Apache 2 4 6 Win64 OpenSSL 1 0 1e PHP 5 5
  • 使用 django-social-auth 登录后获取 Facebook 数据

    我们已经建立了一个应用程序 使用django social auth使用 Facebook 验证用户身份的扩展 身份验证工作正常 但我们不清楚如何从 Facebook 获取有用信息 好友列表 点赞等 看起来django facebook处理
  • 为什么 asort 适用于多维数组?

    抱歉 如果这是一个非常基本的问题 我无意中发现asort http php net manual en function asort php似乎适用于多维数组 示例 PHP animals array 1 gt array name gt
  • 将 Cloudinary 与 spatie/media-library Laravel 包一起使用

    有人使用 Laravel 包 spatie media library 和 Cloudinary 吗 我认为用 Flysystem 来实现它是微不足道的 我实际上使用 Cloudinary 作为带有 silvanite nova field
  • Gearman,php 扩展问题:使用终端在 .. 中找不到类“GearmanWorker”,但可以在浏览器上使用

    我最近在 ubuntu 10 04 上安装了 gearman 并安装了它的 pecl 扩展 现在 当我在浏览器中运行一个 php 文件时 其中包含 client new GearmanWorker die var Dump client I
  • PHP-如何根据条件配对数组中的项目

    如何将数组中的项目配对 假设我有一个数组Fighters 我想根据他们的情况将他们配对Weights 体重最接近的拳手应作为配对最佳匹配 但如果他们是在同一个团队中 他们不应该配对 团队 1 战斗机A体重为60 战斗机B体重为65 2队 战
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • PHP Json_encode 将空格更改为加号 +

    我有一个网络应用程序 我首先将 JSON 数据存储在 cookie 中 然后每 x 秒保存到数据库 它只是打开与服务器的连接 服务器读取 cookie 它实际上并不通过 POST 或 GET 发送任何内容 当我保存到 cookie 时 我的

随机推荐

  • 如何在 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