创建Facebook活动并发布封面照片

时间:2013-04-17 21:17:21

标签: facebook facebook-graph-api facebook-php-sdk

我正在使用

通过php sdk创建一个facebook事件
$param = array(
        'name' => $name,
        'start_time' => $ate,
        'description' => $description,
        'picture' => $photo            
    );

$facebook->api('/me/events', 'POST', $param);

是否可以为此次通话中创建的活动设置封面照片? 如果没有,我能以某种方式设置吗?

文档说封面字段需要照片ID。 如果我还没有上传照片,它没有id,那我该怎么办?

我是否将照片上传到发布“创建活动”操作的用户的facebok帐户,将照片ID设为那样,然后将其发布到活动中?

如果我不想将其上传到用户个人资料怎么办?

谢谢

2 个答案:

答案 0 :(得分:1)

代码示例,在创建活动时上传封面照片:

<?php
//extract data from the post
extract($_POST);

//set POST variables
$url = 'https://graph.facebook.com/me/events';


$data["file"] = "@pika.jpg;type=image/jpeg";
$data["access_token"] = "PUT_USER_ACCESS_TOKEN_HERE";
$data["name"] = "testing";
$data["start_time"] = "2013-04-25";
$data["end_time"] = "2013-04-25";
$data["description"] = "coffee";
$data["location"] = "oldtown";
$data["privacy_type"] = "FRIENDS";

//make the POST request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($curl);

 //curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "Content-Type: multipart/form-data; boundary=--$srand");

//close connection
curl_close($ch);

?>

代码示例,创建事件后,您还可以通过上传新照片替换封面照片:

<?php
//extract data from the post
extract($_POST);

//set POST variables
$url = 'https://graph.facebook.com/PUT_EVENT_ID_HERE';


$data["file"] = "@pikachu.jpg;type=image/jpeg";
$data["access_token"] = "PUT_USER_ACCESS_TOKEN_HERE";

//make the POST request
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_VERBOSE, 1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_POSTFIELDS, $data);
$result = curl_exec($curl);

//close connection
curl_close($ch);

?>

答案 1 :(得分:0)

上传活动的封面照片 - 首先,您无法在创建活动时执行此操作。您首先必须创建一个事件,因此您将获得event_id。使用此event_id拨打电话:

带有参数的{p> \POST /{event-id}cover_url

这是唯一的方式(现在已经测试过)。 this documentation中描述的方法现在不起作用,这被报告为一个错误。您可以订阅此bug以获取有关相同内容的任何更新。

<强>代码:

$param = array(
    'cover_url' => '{image-link}'
);

$facebook->api('/{event-id}', 'POST', $param);