2

異なるページにユニークな写真を投稿するバッチ リクエストを作成しようとしています。

そのために、バッチ ポスト リクエストを使用してプロセスを最適化したいと考えています。

私のコード:

    $facebook = new Facebook(array('appId' => myappId, secret => mysecret, 'cookie' => true, 'fileUpload' => true, 'domain' => $_SERVER['SERVER_NAME']));

    $request[0] = array( 
        'relative_url' => 'facebookPageId1/photos'
        'method' => 'post' 
        'body' => 'access_token=page_access_token_1&message=my_message&attached_files=' . basename($picture));

    $request[1] = array(
      'relative_url' =>'facebookPageId2/photos'
      'method' => 'post'
      'body' => 'access_token=page_access_token_2&message=my_message&attached_files=' . basename($picture));

    $file[basename($picture)] = '@' . realpath($picture);
    $batch = json_encode(array_values(requests));
    $params = array('batch' => $batch);
    $params = array_merge($params, $file);

    $facebook->api('/', 'POST', $params)

このコードを実行すると、2 つのリクエストに対して次の出力が得られました。

'{"error":{"message":"(#324) Requires upload file","type":"OAuthException","code":324}}'

だから問題は何ですか ?

Facebook オブジェクトでfileUploadを trueに設定し、URL「 pageId/photos 」に従来のリクエストで写真を投稿しようとしましたが、完全に機能しました。しかし、バッチ リクエストをウィッチすると、常に同じエラーが発生します。

ご協力いただきありがとうございます。

編集:わかりました、私は間違いを犯しました、私の要求は間違っていました:

$request[0] = array( 
    'relative_url' => 'facebookPageId1/photos',
    'method' => 'post',
    'body' => 'access_token=page_access_token_1&message=my_message',
    'attached_files' => basename($picture)
);

$request[1] = array(
  'relative_url' =>'facebookPageId2/photos',
  'method' => 'post',
  'body' => 'access_token=page_access_token_2&message=my_message',
  'attached_files' => basename($picture)
);

しかし、今では次のエラーが発生しました:

{"error":{"message":"File picturename.jpg has not been attached","type":"GraphBatchException"}}
4

1 に答える 1

0

これが私がすることです:

$files['access_token']=$access_token;
$request[0] = array( 
    'relative_url' => 'facebookPageId1/photos',
    'method' => 'POST',
    'body' => 'message=my_message',
    'attached_files' => 'file_0'
);
$files['file_0']= basename($picture);

$batchresult = $facebook->api("/?batch=".urlencode(json_encode($request)), 'POST', $files);

Facebook Batch は、ファイルを異なる配列に配置するように要求します。また、アクセス トークンをそこに配置することもできます。一度配置する必要があります。

于 2013-04-15T23:09:53.837 に答える