사용자가 캔버스 앱을 열면 이 페이스 북에서 나옵니다. 여기에서 user_id
과 oauth_token
을 파생시킵니다. 그러면 access_token
을 가져 와서 사용자 권한 및 기타 데이터를 확인/가져올 수 있습니까?oauth_token을 가지고 있다면 사용자 access_token을 얻는 방법은 무엇입니까?
4
A
답변
5
oauth_token은 사용자 access_token이며 정확히 일치해야합니다.
당신이 날 /에 GET 통화를 할 수있는 사용자 권한을 확인하려면/권한이 원하는 다른 데이터는 당신이 필요합니다 액세스하는 내용에 따라{
"data": [
{
"installed": 1,
"read_stream": 1,
"manage_notifications": 1,
"manage_pages": 1,
"user_likes": 1,
"user_activities": 1,
"user_interests": 1,
"user_photos": 1,
"user_about_me": 1,
"type": "permissions"
}
]
}
아래의 유사한 데이터 배열을 반환한다 더 많은 권한을 요청한 다음 적절한 API 끝점을 호출합니다. 사용자를 얻을 예를 들어 기본 정보 /me
에 전화를 걸거나 친구 목록을 가져올 수 /me/friends
를 요청할 수있는 모든 권한과 전화 위치에 대한 모든 정보를 찾을 수 있습니다
여기에 필요한 데이터의 다른 비트를 가져 오기위한 API에서 https://developers.facebook.com/docs/reference/api/
1
'oauth token'이 있다고 할 때 액세스 토큰이 맞지 않았습니까? 해당 토큰을 사용하여 /me/permissions
에 대한 API 호출을 시도하고 작동하는지 확인할 수 있습니까? 사용자가 앱에 부여한 사용 권한 목록을 반환해야합니다 (해당 토큰을 통해 사용할 수 있음)
-1
<?php
include '../../src/config.php';
// Get User ID
$user = $facebook->getUser();
// We may or may not have this data based on whether the user is logged in.
//
// If we have a $user id here, it means we know the user is logged into
// Facebook, but we don't know if the access token is valid. An access
// token is invalid if the user logged out of Facebook.
if ($user) {
try {
// Proceed knowing you have a logged in user who's authenticated.
$user_profile = $facebook->api('/me');
} catch (FacebookApiException $e) {
error_log($e);
$user = null;
}
}
// Login or logout url will be needed depending on current user state.
if ($user) {
$logoutUrl = $facebook->getLogoutUrl();
$access_token = $facebook->getAccessToken();
$user_xml = "<?xml version=\"1.0\"?>\n";
$user_xml .= "<roots>\n";
$user_xml .= "<access>\n";
$user_xml .= "<token>" . $access_token . "</token>\n";
$user_xml .= "</access>\n";
$user_xml .= "</roots>\n";
echo $user_xml;
} else {
$loginUrl = $facebook->getLoginUrl();
}
?>