我正在通过php sdk使用
创建一个facebook事件$param = array(
'name' => $name,
'start_time' => $ate,
'description' => $description,
'picture' => $photo
);
$facebook->api('/me/events', 'POST', $param);
是否可以为正在创建的事件设置封面照片?如果不是,我可以设置它吗?
文档说封面字段需要一个带照片的id。如果我还没有上传照片,它没有id,我该怎么做?
我是否将照片上传到发出"创建事件"动作的用户的facebook帐户,以这种方式获得照片id,然后将其发布到事件?
如果我不想把它上传到用户配置文件中怎么办?
谢谢
代码示例,创建事件时上传封面照片:
<?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);
?>
上传事件的封面照片-首先,您不能在创建事件时这样做。您首先必须创建一个事件,因此您将获得event_id
。使用event_id
,拨打电话:
POST /{event-id}
with param: cover_url
到目前为止,这是唯一的方法(我已经测试过)。本文档中描述的方法目前无法工作,这被报告为一个bug。您可以订阅此错误以获取有关该错误的任何更新。
代码:
$param = array(
'cover_url' => '{image-link}'
);
$facebook->api('/{event-id}', 'POST', $param);