背景
我在找出如何以编程方式将照片发布到Facebook Page时遇到了一些麻烦。我已经阅读了关于身份验证为页面的 Facebook 文档,但所有示例都涉及 Facebook 用户。到目前为止,我刚刚使用 Facebook 的Graph API Explorer手动生成了所需的访问令牌。(3)
我试过的
使用这个简单的代码,我成功上传了图片,但是它被发布在我自己的墙上,在我自己名字下的相册中,而不是在Facebook页面上,在Facebook 页面下的Facebook 页面相册中的名字。我需要将其作为Facebook 页面本身发布在特定的Facebook页面上。(1)
<?php
require 'facebook-php-sdk/src/facebook.php';
require 'config.php';
$facebook = new Facebook(array(
'appId' => $config['facebook_appId'],
'secret' => $config['facebook_appSecret'],
'fileUpload' => true
));
$facebook->setAccessToken($config['facebook_pageAccessToken']);
$args = array(
'message' => 'Facebook API test',
'source' => '@'.realpath(__DIR__.'/404.jpg')
);
$data = $facebook->api('/'.$config['facebook_pageId'].'/photos', 'post', $args);
关于代码
$config['facebook_appId']
来自我创建的虚拟测试应用程序$config['facebook_appSecret']
来自我创建的虚拟测试应用程序$config['facebook_pageAccessToken']
使用范围、和( 3)从Graph API Explorer生成manage_pages
publish_stream
photo_upload
offline_access
- 作为对潜在未来访问者的附注,事实证明我生成了一个用户访问令牌而不是页面访问令牌,这就是它被张贴在我自己的墙上的原因,在我自己的相册中。
$config['facebook_pageId']
是页面的 ID(我也是使用Graph API Explorer找到的)- 成功完成后
$data
包含图像的 ID 和墙上的帖子(?)
问题摘要
- 如何将照片作为 Facebook 主页本身发布到 Facebook 主页?
- 这是针对开发人员来来往往的项目。有没有办法让我拥有一个独立于特定 Facebook 用户的不可变页面访问令牌,或者依赖于(虚拟)Facebook 应用程序,或者以某种方式动态生成一个?
- 我如何(如有必要)作为 Facebook 页面进行身份验证 - 在 PHP 中以编程方式给我一个页面访问令牌?
代码示例或指向简明文档和/或教程的链接,最好带有示例,我们将不胜感激。