私はこのコードを認証に使用しました。
<?php
$app_id = 'API_ID';
$app_sec = 'SECRETE';
$canvas_page = 'CANVAS_URL';
$scope = '&scope=user_photos,email,publish_stream';
$auth_url = "http://www.facebook.com/dialog/oauth?client_id="
. $app_id . "&redirect_uri=" . urlencode($canvas_page).$scope;
$signed_request = $_REQUEST["signed_request"];
list($encoded_sig, $payload) = explode('.', $signed_request, 2);
$data = json_decode(base64_decode(strtr($payload, '-_', '+/')), true);
if (empty($data["user_id"])) {
echo("<fb:redirect url='".$auth_url."' />");
}
$access_token = $data['oauth_token'];
$user_id = $data["user_id"];
$user = json_decode(file_get_contents(
'https://graph.facebook.com/me?access_token=' .
$access_token));
function get_facebook_cookie($app_id, $application_secret) {
$args = array();
parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
ksort($args);
$payload = '';
foreach ($args as $key => $value) {
if ($key != 'sig') {
$payload .= $key . '=' . $value;
}
}
if (md5($payload . $application_secret) != $args['sig']) {
return null;
}
return $args;
}
$cookie = get_facebook_cookie($app_id, $app_sec);
//facebook application
//set facebook application id, secret key and api key here
$fbconfig['appid' ] = "APP_ID";
$fbconfig['api' ] = "API";
$fbconfig['secret'] = "SECRETE";
//set application urls here
$fbconfig['baseUrl'] = "BASE_URL";
$fbconfig['appBaseUrl'] = "APP_BASE_URL";
$uid= null; //facebook user id
try{
require_once "facebook.php";
}
catch(Exception $o){
echo '<pre>';
print_r($o);
echo '</pre>';
}
// Create our Application instance.
$facebook = new Facebook(array(
'appId' => $fbconfig['appid'],
'secret' => $fbconfig['secret'],
'cookie' => true,
));
?>
壁に
require_once 'authentication.php';
require_once "facebook.php";
$attachment = array('message' => 'some message',
'name' => 'name',
'caption' => "caption",
'link' => 'http://example.com/',
'description' => 'description',
'actions' => array(array('name' => 'name', 'link' => 'http://example.com/')));
$result = $facebook->api('/me/feed?access_token='.$access_token, 'post', $attachment);
を公開するために、私は本当に私はここに非常に何かを明らかに欠けている明確な感覚を持っています。 – Cyclone
FBのドキュメントが最悪で、そのAPIが完璧または完全ではないことに同意します。しかし、あなたの考えも理解できません。クライアント側の対話にはクライアント側の技術が必要です。サーバー側の言語から 'showPermDialog'を起動しますか? :-) – ifaour
@ifaourそれは本当にFacebookにはありませんか? 'die'を使ってスクリプトの実行を終了し、api呼び出しを呼び出して適切なページにユーザを誘導します。 – Cyclone