Facebook etkinlik oluşturmak

3 Cevap php

Ben Facebook connect kullanarak Facebook'ta olayları oluşturmak için çalışıyorum. Şimdiye kadar,

$appapikey = 'my key here';

$facebook = new Facebook($appapikey, 'my secret here');
$user = $facebook->require_login();
$fapi = $facebook->api_client;

if(!$facebook->api_client->users_hasAppPermission('create_event')){
    echo'<script type="text/javascript">window.open("http://www.facebook.com/authorize.php?api_key='.$appapikey.'&v=1.0&ext_perm=create_event", "Permission");</script>';
    echo'<meta http-equiv="refresh" content="0; URL=javascript:history.back();">';
    exit;
}

$event_info = array();
$event_info['name'] = $_POST['name'];
$event_info['category'] = 8;
$event_info['subcategory'] = 36;
$event_info['host'] = 'Me';
$event_info['location'] = $_POST['location'];
$event_info['email'] = $_POST['email'];
$event_info['phone'] = $_POST['phone'];
$event_info['description'] = $_POST['description'];
$event_info['city'] = $_POST['city'];
if($_POST['start_time_ampm'] == 'PM'){
    $_POST['start_time_hour'] = $_POST['start_time_hour'] + 12;
}
if($_POST['end_time_ampm'] == 'PM'){
    $_POST['end_time_hour'] = $_POST['end_time_hour'] + 12;
}

$event_info['start_time'] = mktime($_POST['start_time_hour'],$_POST['start_time_min'],00,$_POST['start_time_month'],$_POST['start_time_day'],$_POST['start_time_year']); //Converts time to UTC
$event_info['end_time'] = mktime($_POST['end_time_hour'],$_POST['end_time_min'],00,$_POST['end_time_month'],$_POST['end_time_day'],$_POST['end_time_year']);



try{
    echo json_encode($_POST);
    $event_id = $fapi->events_create($event_info);
    $sql = "INSERT into events (EventId) values('$event_id')";
    $result = mysql_query($sql) or die("can't select events<br>$sql".mysql_error());
    echo 'Event Created!';
}

Bu, tüm iyi çalışır, ancak iade event_id farklı etkinlikler için her zaman aynıdır. Benim Facebook hesabımda baktığımızda, olay başarıyla eklendi, ancak kimliği orada tamamen farklı oldu. Ben yanlış yapıyor olabilir Herhangi bir fikir ne?

I figured out this issue. It was because my database field was set to an int and unfortunately, the Facebook id's were too long.

3 Cevap

Ben bu sorunu çözdüm. Benim veritabanı alan bir int set ve ne yazık ki, Facebook id en çok uzundu çünkü öyleydi. Ben sadece alan türünü değiştirmek zorunda kaldı.

Yerine:

$event_id = $fapi->events_create($event_info);

Ben seni istiyorum:

$event_id = $facebook->api_client->events_create($event_info);

Için parametre events_create() bir json kodlanmış dize olması gerekir. Bu değiştirin:

$event_id = $fapi->events_create($event_info);

Bunun için:

$event_id = $fapi->events_create(json_encode($event_info));