I have a PHP form (index.php) that uses the Facebook Graph API to create an event. A form is used to capture user input, and this data is POSTed back to the API to create the event. This is the same code as explained in this tutorial: http://www.masteringapi.com/tutorials/how-to-create-facebook-events-using-graph-api/49/
The result of this is that, it returns the ID of the event that just got created.
<?php
$app_id = "APP_key";
$app_secret = "APP_secret";
$my_url = "URL";
$code = $_REQUEST["code"];
if(empty($code)) {
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. "&scope=create_event";
echo("<script>top.location.href='" . $auth_url . "'</script>");
}
$token_url = "https://graph.facebook.com/oauth/access_token?client_id="
. $app_id . "&redirect_uri=" . urlencode($my_url)
. "&client_secret=" . $app_secret
. "&code=" . $code;
$access_token = file_get_contents($token_url);
$event_url = "https://graph.facebook.com/me/events?" . $access_token;
?>
<style>
label {float: left; width: 100px;}
input[type=text],textarea {width: 210px;}
</style>
</head>
<body>
<div id="inputForm">
<form enctype="multipart/form-data" action="<?php echo $event_url; ?>" method="post">
<p><label for="name">Event Name</label><input type="text" name="name" value="" /></p>
<p><label for="description">Event Description</label><textarea name="description"></textarea></p>
<p><label for="location">Location</label><input type="text" name="location" value="" /></p>
<p><label for="">Start Time</label><input type="text" name="start_time" value="<?php echo date('Y-m-d H:i:s'); ?>" /></p>
<p><label for="end_time">End Time</label><input type="text" name="end_time" value="<?php echo date('Y-m-d H:i:s', mktime(0, 0, 0, date("m") , date("d")+1, date("Y"))); ?>" /></p>
<p><label for="picture">Event Picture</label><input type="file" name="picture" /></p>
<p>
<label for="privacy_type">Privacy</label>
<input type="radio" name="privacy_type" value="OPEN" checked='checked'/>Open
<input type="radio" name="privacy_type" value="CLOSED" />Closed
<input type="radio" name="privacy_type" value="SECRET" />Secret
</p>
<p><input type="submit" value="Create Event" /></p>
</form>
</div>
<?php
This code works great, but I'm trying to modify this code such that, index.php posts data to $event_url to create the event, but redirects you to a confirmation page that displays a message such as:
"Event successfully created! Click here to access your event", and clicking "here" would redirect you the event on Facebook.
Any thoughts on how this could be done?
Change $event_url
to a page like event_submitter.php
on your site and add the access_token
as a hidden field on your form.
The event_submitter
page should take the $_POST
data, strip out the access_token
(You could eliminate this part if you used the php SDK), reformat the rest of the $_POST
data, send this to to the Facebook API via cURL and examine the response.
If you get the correct response, you can then generate the output you want from that.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.