2011-01-15 30 views
6

Tôi đang cố gắng xây dựng một ứng dụng mà tôi cho phép người dùng đã đăng ký của mình có thể đăng ký các địa điểm trên Facebook Places. Tôi tuy nhiên vì một lý do nào đó dường như không thể thực hiện công việc này. Tôi cho rằng điều này là có thể với Api như chức năng viết đã được thêm vào nó, nhưng tôi không thể tìm thấy một lời giải thích rõ ràng trên web. đây là những gì tôi hiện có, sau khi tôi đã yêu cầu người dùng cho phép xuất bản kiểm tra và cho user_checkins.Không thể đăng nhập vào Facebook Places bằng cách đăng lên api?

<?php 

require("src/facebook.php"); 


$facebook = new Facebook(array(
'appId' => 'xxxxxxxxx', 
'secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx', 
'cookie' => true 
)); 



# see if active session 
$session = $facebook->getSession(); 

if(!empty($session)) { 

try{ 
$uid = $facebook->getUser(); 


$api_call = array(
'method' => 'users.hasAppPermission', 
'uid' => $uid, 
'ext_perm' => 'publish_checkins' 
); 
$can_post = $facebook->api($api_call); 
if($can_post){ 



$facebook->api('/'.$uid.'/checkins', 'POST', array(
    'access_token' => $facebook->getAccessToken(), 
    'place' => 'place_id', 
    'message' =>'I went to placename today', 

    'picture' => 'http://www.place.com/logo.jpg', 
    'coordinates' => array(
    'latitude' => 'lattiude', 
    'longitude' => 'lattitude', 
    'tags' => $uid, 
    ) 
) 




); 
echo 'You were checked in'; 
} else { 
die('Permissions required!'); 
} 
} catch (Exception $e){} 
    } else { 
# There's no active session,generate one 
$login_url = $facebook->getLoginUrl(); 
header("Location: ".$login_url); 
} 

?> 

Mã hoạt động khi tôi thay đổi 'checkins' thành 'feed'. Có cái gì sai với mã của tôi hoặc tôi đang cố gắng để làm somethign đó là không thể (hoặc làm điều đó một cách sai lầm).

Bất kỳ trợ giúp nào sẽ được đánh giá rất cao vì tôi đã dành khá nhiều thời gian để sửa lỗi này, nhưng tôi dường như không thể làm cho nó hoạt động được.

Trân trọng,

Marcus Joe

+0

là bạn nhận được bất kỳ lỗi nào? cũng nếu bạn làm điều này, '$ facebook-> api ("/me/checkins? access_token = YOUR_ACCESS_TOKEN ")' bạn đã nhận được gì? – ifaour

+0

Lạ, in nó trả về cho tôi một mảng trống. BTW Tôi không nhận được bất kỳ lỗi nào khác, nó chỉ không hiển thị "bạn đã đăng ký" trong khi nó khi tôi sử dụng nó để đăng lên nguồn cấp dữ liệu. –

+0

bạn có thể nâng cấp lên PHP-SDK mới không? – ifaour

Trả lời

10

câu trả lời của bạn là gần như chính xác.

$facebook->api('/'.$uid.'/checkins', 'POST', array(
'access_token' => $facebook->getAccessToken(), 
'place' => 'place_id', 
'message' =>'I went to placename today', 
'picture' => 'http://www.place.com/logo.jpg', 
'coordinates' => json_encode(array(
    'latitude' => 'lattiude', 
    'longitude' => 'lattitude', 
    'tags' => $uid), 
) 
) 

Lưu ý rằng đối với tọa độ, bạn phải cung cấp biến json_encode. Hy vọng rằng sẽ giúp ai đó.

+0

Bạn nói đúng, đó là bây giờ tôi nhớ. Cảm ơn bạn. –

1

Chỉ cần một bản cập nhật Từ Facebook:

LƯU Ý: Xuất bản một đối tượng Checkin được phản đối ủng hộ việc tạo ra một bài viết với một vị trí kèm theo.

Bạn có thể kiểm tra như thế nào để tạo ra một bài viết với một vị trí (hoặc một id Facebook Place) ở đây: http://developers.facebook.com/docs/reference/api/user/#posts

Các vấn đề liên quan