我想通過PHP在Facebook圖形API的幫助下更新FAN-PAGE的狀態。谷歌說:不起作用。FACEBOOK GRAPH/rest api:如何登錄我自己的用戶以使用PHP更新我的狀態
現在我想通過PHP更新我自己的用戶狀態。我的主要問題是如何在不使用瀏覽器和沒有有趣的PHP解決方法的情況下將我自己的用戶登錄到圖形API(使用PHP)。
我想通過PHP在Facebook圖形API的幫助下更新FAN-PAGE的狀態。谷歌說:不起作用。FACEBOOK GRAPH/rest api:如何登錄我自己的用戶以使用PHP更新我的狀態
現在我想通過PHP更新我自己的用戶狀態。我的主要問題是如何在不使用瀏覽器和沒有有趣的PHP解決方法的情況下將我自己的用戶登錄到圖形API(使用PHP)。
在你需要得到publish_stream
許可http://developers.facebook.com/docs/authentication/permissions
這可以用FB.login()
更多信息來完成這兩種情況下:http://developers.facebook.com/docs/authentication
後,你可以只使用圖形API後更新狀態:http://developers.facebook.com/docs/reference/api/post
我的主要問題是如何登錄我自己的 用戶使用圖表api(使用php), 不使用瀏覽器,也不使用 有趣的PHP解決方法。
有
沒有讓你無需通過瀏覽器與他互動至少一次,以獲得offline_access
代表用戶(甚至是你自己的用戶)的行爲方式。
如何獲得offline_access
權限以及如何從此處使用它在此answer中解釋。
編輯:
請閱讀評論!謝謝@zerkms!
你需要幾件事情來更新Facebook個人資料或頁面的飼料:一個Facebook應用程序(CLIENT_ID,client_secret),PROFILE_ID,並的access_token(publish_stream,manage_pages,offline_access權限)
您需要offline_access,因爲如果不是,則訪問令牌將過期。如果您已經閱讀過,如果您已經指定了publish_stream,則不需要offline_access,這只是意味着您不需要它。
要發佈一個帖子很簡單:
$data = array(
'access_token' => $access_token,
'message' => 'status message',
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_URL, "https://graph.facebook.com/{$profile_id}/feed");
現在如何得到PROFILE_ID和的access_token,你可以使用我的應用程序post panda,或使自己的腳本。我會在這裏包含它:
# arvin castro
# http://codecri.me/
# January 16, 2011
$client_id = ''; # application id
$client_secret = ''; # application secret
$callbackURL = 'http://'; # the URL of this script
$extendedPermissions = 'publish_stream,manage_pages,offline_access';
session_name('facebookoauth');
session_start();
if(isset($_GET['logout']) and $_SESSION['loggedin']) {
$_SESSION = array();
session_destroy();
}
if(isset($_GET['signin'])) {
# STEP 1: Redirect user to Facebook, to grant permission for our application
$url = 'https://graph.facebook.com/oauth/authorize?' . xhttp::toQueryString(array(
'client_id' => $client_id,
'redirect_uri' => $callbackURL,
'scope' => $extendedPermissions,
));
header("Location: $url", 303);
die();
}
if(isset($_GET['code'])) {
# STEP 2: Exchange the code that we have for an access token
$data = array();
$data['get'] = array(
'client_id' => $client_id,
'client_secret' => $client_secret,
'code' => $_GET['code'],
'redirect_uri' => $callbackURL,
);
$response = xhttp::fetch('https://graph.facebook.com/oauth/access_token', $data);
if($response['successful']) {
$var = xhttp::toQueryArray($response['body']);
$_SESSION['access_token'] = $var['access_token'];
$_SESSION['loggedin'] = true;
} else {
print_r($response['body']);
}
}
if($_SESSION['loggedin']) {
// Get Profile ID
$data = array();
$data['get'] = array(
'access_token' => $_SESSION['access_token'],
'fields' => 'id,name,accounts',
);
$response = xhttp::fetch('https://graph.facebook.com/me', $data);
echo '<pre>';
print_r(json_decode($response['body'], true));
echo '</pre>';
} else {
echo '<a href="?signin">Sign in with Facebook</a>';
}
?>
我用我的捲曲包裝類,xhttp
「我只是想更新FAN-PAGE的** **狀態」與「更新* *我的狀態**「是吧? – zerkms 2011-02-01 09:34:14
我有一個主要的Facebook(用戶)頁面和一個自己的粉絲頁面,在用戶帳戶 – alex 2011-02-01 09:55:12
@alex:所以?你想要發佈到哪個頁面? – zerkms 2011-02-01 10:09:16