페이스 북 그래프 API를 사용하여 이벤트를 만드는 PHP 폼 (index.php)이 있습니다. 양식은 사용자 입력을 캡처하는 데 사용되며이 데이터는 API에 다시 게시되어 이벤트를 만듭니다. 이것은이 튜토리얼에서 설명한 코드와 동일합니다. http://www.masteringapi.com/tutorials/how-to-create-facebook-events-using-graph-api/49/그래프 Api에서 반환 된 데이터를 구문 분석하는 방법
방금 생성 한 이벤트의 ID를 반환합니다.
<?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
이 코드는 잘 작동하지만, 나는 $ EVENT_URL 데이터가 이벤트를 생성하는 등의 index.php 게시물 것을이 코드를 수정하기 위해 노력하고있어,하지만 같은 메시지를 표시하는 확인 페이지로 리디렉션 :
"이벤트가 성공적으로 생성되었습니다! 이벤트에 액세스하려면 여기를 클릭하십시오."를 클릭하고 "여기"를 클릭하면 Facebook에 이벤트가 리디렉션됩니다.
이 작업을 수행하는 방법에 대한 의견이 있으십니까?
고마워요! $ access_token 변수를 숨겨진 입력으로 전달했습니다. "event_submitter.php"에서 cURL을 사용하여 Facebook에 다시 게시하십시오. $ event_url = "https://graph.facebook.com/me/events?" . $ access_token; $ ch = curl_init(); curl_setopt ($ ch, CURLOPT_URL, $ event_url); curl_setopt ($ ch, CURLOPT_USERAGENT, "I-am-browser"); curl_setopt ($ ch, CURLOPT_HEADER, 0); curl_setopt ($ ch, CURLOPT_RETURNTRANSFER, true); curl_setopt ($ ch, CURLOPT_TIMEOUT, 10); $ response = curl_exec ($ ch); curl_close ($ ch); var_dump (json_decode ($ response, true)); –
그러나 빈 "데이터 []"배열을 반환하는 것을 볼 수 있습니다. cURL이 사용 된 방식에 문제가 있습니까? –
URL을 올바르게 구성 했습니까? 거기에'access_token ='이 있어야합니까? 또한'$ access_token'을 연결하기 전에'; '을 얻은 것처럼 보입니다. cURL에 POST로 제출하거나 cURL 호출에서 POST 데이터를 포함하도록 cURL에 지시하는 위치가 표시되지 않습니다. 이 경우 GET 호출을하고 있으며 프로필에 현재 이벤트가없는 경우 빈 데이터가 표시됩니다. – cpilko