0

ボタンのクリックで PHP を使用して Facebook に写真をアップロードしようとしています。うまくいかないようです。

HTML ボタンコード

<a class="btn" href="test.php?upload=true">Click here to upload this image on your Facebook wall</a>

PHP コード

    <?php
        $act=isset($_GET['upload'])?$_GET['upload']:"";

        if($upload=='true'){

        set_time_limit(50);
        require 'facebook.php';

        // Create our Application instance (replace this with your appId and secret).
        $facebook = new Facebook(array(
                    'appId' => 'FB_APP_ID',
                    'secret' => 'FB_SECRET_KEY',
                ));

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

        } else {
            $loginUrl = $facebook->getLoginUrl();
            header('Location:' . $loginUrl . '&scope=user_photos,publish_stream');
        }
        ?>

        <?php
        // Login or logout url will be needed depending on current user state.
                if ($user) {
                    if (isset($_GET['upload'])) {
                ?>

                <?php
                        $facebook->setFileUploadSupport(true);
                        $args = array('message' => 'test');
                        copy('http://mysite.com/test.png', 'tmp/file.jpeg');
                        $args['image'] = '@' . realpath('tmp/file.jpeg');
                        $data = $facebook->api('/me/photos', 'post', $args);
                        unlink('tmp/file.jpeg');
                        //assigning users to tag and cordinates
                        $argstag = array('to' => $user);
                        $argstag['x'] = 40;
                        $argstag['y'] = 40;
                        $datatag = $facebook->api('/' . $data['id'] . '/tags', 'post', $argstag);
                        echo 'Success! Check your facebook wall now';
                    } else {
                ?>
                        <a href="test.php?upload=true">Click here to upload this image on your facebook wall</a><br/><br/>

        <?php
                    }
                }


        }
?>

注: facebook.php は、facebook PHP SDK に付属するものです。

4

1 に答える 1

0

それをtry&catchブロックに入れて、何が起こるかを確認します。

 // ...
 try {
    $facebook->setFileUploadSupport(true);
    $response = $facebook->api(
      '/me/photos/',
      'post',
      array(
        'message' => 'This is my image caption',
        'source' => '@/absolute/path/to/image' // @-sign must be the first character
      )
    );
  }
  catch (FacebookApiException $e) {
    echo "Error: ".$e->getMessage();
  }
  // ...

「tmp/」(「/ tmp /」を意味しますか?)にコピーを呼び出した後、有効なイメージがあることを確認し、photo_upload権限を持っていることを確認してください。

https://developers.facebook.com/docs/reference/php/facebook-setFileUploadSupport/

于 2012-08-02T13:47:50.643 に答える