2012-04-06 11 views
0

PHP SDKを使用せずにホストされた写真をユーザーのプロフィールに投稿するPHPスクリプトを作成しようとしています。これを実行するとグラフAPIとPHPを使用したホステッドフォトの公開

<?php 
    $app_id = "[My App ID]"; 
    $app_secret = "[My App Secret]"; 
    $post_login_url = "[current page]"; 

    $code = $_REQUEST["code"]; 

    //Obtain the access_token with publish_stream permission 
    if(empty($code)){ 
     $dialog_url= "http://www.facebook.com/dialog/oauth?" 
     . "client_id=" . $app_id 
     . "&redirect_uri=" . urlencode($post_login_url) 
     . "&scope=publish_stream"; 
     echo("<script>top.location.href='" . $dialog_url 
     . "'</script>"); 
    } 
    else { 
     $token_url="https://graph.facebook.com/oauth/access_token?" 
     . "client_id=" . $app_id 
     . "&redirect_uri=" . urlencode($post_login_url) 
     . "&client_secret=" . $app_secret 
      . "&code=" . $code; 
      $response = file_get_contents($token_url); 
      $params = null; 
      parse_str($response, $params); 
      $access_token = $params['access_token']; 






     // This would probably be where my problem is 
     $graph_url= "https://graph.facebook.com/me/photos?" 
     . "access_token=" .$access_token; 
$postdata = http_build_query(
     array(
      'source' => $imageurl, //this variable has been properly defined 
      'message' => $image_description //this, too, has been defined 
      ) 
     ); 
     $opts = array('http' => 
     array(
      'method'=> 'POST', 
      'header'=> 
      'Content-type: application/x-www-form-urlencoded', 
      'content' => $postdata 
     ) 
     ); 
     } 
?> 

は、アプリの名前の新しいアルバムが作成されますが、ファイルがアップロードされていない:これは私が今持っているものです。この仕事をする方法はありますか?誰かがPHP内の溶液、あるいはJavaScriptを知っていれば、少しオフトピック

-Cory

答えて

0

を共有してください、なぜあなたは、PHPのリダイレクト、およびないためにJavaScriptを使用していますか?

header( 'Location:'。$ dialogue_url);

+0

...同じ理由私はPHP SDKを使用していません。私はおそらく簡単に修正することができますが、正直なところ私は何をやっているのかわからないエラーが表示されます。 –

+0

Heh、それは私たちがすべて始まるところです:-)あなたはどんなエラーを受け取りますか?すでに送信されているヘッダーについては何か? – Azirius

+0

ええ、セッションのクッキーとヘッダーで...多くの人が持っていたようです –

0

お試しください

このようにフォーム提出を行っている場合は、

$sourceFile = $_FILES[$fileElementName]; 

$postdata = http_build_query(array('source' => '@'.$sourceFile['tmp_name'])); 

uはちょうど

'ソース' => '@' $のimgLocalPathをテストする場合。

関連する問題