2

3 つのファン ページに写真を自動的に投稿するスクリプトを作成しようとしています。

スクリプトは次のとおりです。

$facebook = new Facebook(array(
  'appId'  => $fbconfig['appid'],
  'secret' => $fbconfig['secret'],
  'fileUpload' => true,
));
if($_GET["postType"] == "picture"){$type = "picture";}
else {$type = "link";}
// Download the picture, if $type == picture.
if($type == "picture")
{
        $tempFileName = $_SERVER['DOCUMENT_ROOT'].'/TemporaryFiles/';
        $tempFileName .= uniqid().'_'.basename($_GET["pictureUrl"]);
        // Check if content retrieval is successful :D
        if($imgContent = @file_get_contents($_GET["pictureUrl"]))
        {
                @file_put_contents($tempFileName,$imgContent);
        }
}
foreach($pageIDs as $index=>$item)
{
        $fbconfig['pageid'] = $item;
        $facebook->setFileUploadSupport(true);
        if($type == "picture")
        {
                $args = array(
                        'access_token'  => $pageAccessTokens[$index],
                        'message' => $_GET["message"],
                        'source' => '@' . realpath($tempFileName),
                        );
                $post_id = $facebook->api("/" . $albumIDs[$index] . "/photos","post",$args); // Post made :)
        }
        else if($type == "link")
        {
                $args = array(
                        'access_token'  => $pageAccessTokens[$index],
                        'message'       => $_GET["message"],
                        'link' => $_GET["linkUrl"],
                        'picture' => "",
                        );          
                        $post_id = $facebook->api("/$pageid/feed","post",$args); // Post made :)
        }
}
if($type == "picture")
{
        unlink($tempFileName);
}

次のエラーがスローされます。

キャッチされていない OAuthException: (#324) アップロード ファイルがスローされる必要があります

私はそれをデバッグしようとしましたが、何が問題なのかわかりません。誰かが助けてくれたら、感謝します。

4

2 に答える 2

4

画像をアップロードするには、要求されたスコープに photo_upload を追加する必要があります。

array('scope' => 'user_status,publish_stream,user_photos','photo_upload')
于 2013-06-20T20:55:18.027 に答える
0

$ facebook-> api ('/ me'); の後にこれをコードに入れます。

$this->facebook->setFileUploadSupport(true);

于 2013-11-12T02:59:41.960 に答える