0

PHP SDK を使用せずに、ホストされている写真をユーザーのプロファイルに投稿する 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 で解決策を知っている場合は、共有してください

-コーリー

4

2 に答える 2

0

これを試して

フォーム送信を行っている場合は、このようにすることができます。

$sourceFile = $_FILES[$fileElementName];

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

テストしたいだけなら

'ソース' => '@'.$imgLocalPath;

于 2012-04-09T11:08:32.567 に答える
0

トピックから少し外れましたが、PHP ではなく JavaScript を使用してリダイレクトするのはなぜですか?

header('Location: ' . $dialog_url );

于 2012-04-06T17:20:55.943 に答える