2011-09-09 20 views
0

を返します。私はphp sdkを使用しています。ここに私のPHPコードがfacebookからaccess_tokenを取得できません。コードパラメータ

require 'src/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => '123456', 
    'secret' => '123456abcdef', 
)); 

// Get User ID 
$user = $facebook->getUser(); 

//echo "-----".$user; 

if ($user) { 
    try { 
    $user_profile = $facebook->api('/me'); 
    } catch (FacebookApiException $e) { 
    $user = null; 
    } 

    //print_r($user_profile); 
    $token = $facebook->getAccessToken(); 
    //echo $token; 
    // store token 

    if ($user_profile['id'] && $token) { 
    $useradd = mysql_query("insert into fbdata (id,name,token) values ('".$user_profile['id']."','".$user_profile['name']."','".$token."')"); 
    if ($uyeekle) 
    echo "Data added"; 
    } 
} 


if (!$user) { 
    $args['scope'] = 'offline_access,read_stream,publish_stream'; 
    $loginUrl = $facebook->getLoginUrl($args); ?> 
<a href="<?php echo $loginUrl ?>">Facebook Login</a> 
<?php } ?> 

ログインfacebookであるトークンはアクセスしないで、コードパラメータで私のウェブサイトにリダイレクトします。アクセストークン形式のようには見えません。 | char。しかし、私はそれが動作するこのコードでビデオをアップロードしようとします。

require 'src/facebook.php'; 


$facebook = new Facebook(array(
    'appId' => '123456', 
    'secret' => '123456abcdef', 
)); 
$facebook->setFileUploadSupport(true); 

$url = "https://graph-video.facebook.com/me/videos?title=abc&description=desc&access_token=ABAD........AZDZD"; 


$attachment = array(
'description' => 'desc', 
'title' => 'abc' 
); 


$attachment["file"] = '@' . realpath("123.mp4"); 

$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, false); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($ch, CURLOPT_POST, true); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $attachment); 

$data = curl_exec($ch); 
echo $data; 

このコードは、ビデオIDを返します。そのアドレスからビデオ情報を取得したいです。 https://graph.facebook.com/123456?access_token=ABAD........AZDZD

しかし、常にfalseと言っています。私のミスはどこですか?

答えて

1

Facebook Authentication docsで確認されているアクセストークンの代わりにコードをリダイレクトすることが予想されます。サーバー側認証(PHP SDK)を使用する場合、Facebookはhttp://YOUR_URL?code=A_CODE_GENERATED_BY_SERVERにリダイレクトされます。このコードを自分でアクセストークンに解決する必要があります(これは$facebook->getAccessToken()を呼び出すだけで可能です)。そしてあなたが言うように、このアクセストークン(ではなく、リダイレクトからのコード)を使用してAPI呼び出しを行うことができます。

Facebook PHP SDKを使用している場合は、それを使用してAPI呼び出しを行うだけです。動画のアップロードに関する具体的な内容についてはわかりませんが、次のようになります。

$facebook = new Facebook(array(
    'appId' => '123456', 
    'secret' => '123456abcdef', 
    'fileUpload' => true, 
)); 

$attachment = array(
    'description' => 'desc', 
    'title'  => 'abc', 
    'file'  => '@' . realpath("123.mp4"); 
); 

$result = $facebook->api('/me/videos', 'POST', $attachment); 
var_dump($result); 
+0

最初は返信用です。 「コード」を使用してアップロードしています。問題はない。私はビデオ情報を取得したいが、私はそれを行うことはできません。 –

+0

私は参照してください。それはタイトルのものとは異なる質問なので、私は混乱しました。 – PCheese