1

私はこれと戦うのに何時間も費やしました。この問題について見つけたものはすべて読みましたが、まだ答えはありません。助けてください.

FacebookアプリとGraph APIを使用して、Facebookページの壁に画像を投稿しようとしています:

<?php

$facebook = new Facebook(array(
          'appId'  => $this->settings['app_id'],
          'secret' => $this->settings['app_secret'],
          'fileUpload' => true,
));
$facebook->destroySession();
$filename = dirname(__FILE__) . '/upset.jpg';
$args = array(
    'message' => 'Test',
    'image' => '@' . realpath($filename),
    'access_token' => $this->settings['user_access_token'],
);
try {
    $result = $facebook->api($this->settings['fanpage_id'] . '/photos',
        'post', $args);
    var_dump($result);
}
catch(Exception $e) {
    echo $e->getType() . "\n" . $e->getMessage() . "\n";
}

このコードは本当にメッセージをページ ウォールに投稿し ('/photos' を '/feed' に置き換えた場合)、実際に USER ウォールに写真を投稿します ($this->settings['fanpage_id'] を $ に変更した場合)。 user_id) ですが、ページの壁には写真はありません。

ただし、画像はアップロードされます。$result にはアップロードされた画像の ID が含まれており、Facebook で見ることができますが、ページのアルバムではなくユーザーのアルバムで見ることができます。

PS /accounts を呼び出してページ アクセス トークンを取得しようとしましたが、結果は同じです。PPSユーザーアクセストークンには、manage_pages、photo_upload、およびその他の権限があります(実際にはoffline_accessを除くすべて)

4

2 に答える 2

2

現在ログインしている Facebook ユーザーのアクセス トークンを使用しているように見えるため、manage_pages拡張許可を取得する必要がある場合があります。許可が与えられると、ファン ページ ウォールに画像を投稿できるようになります。

編集 :

拡張パーミッションのドキュメントはこちらhttps://developers.facebook.com/docs/authentication/permissions/#page_perms拡張パーミッション でユーザー ログインを取得する方法を示すチュートリアルが利用可能です http://thinkdiff.net/facebook/php-sdk -3-0-graph-api-base-facebook-connect-tutorial/

于 2012-08-02T15:22:12.303 に答える
-1

解決されたようです。ユーザーの代わりにページアクセストークンを使用する必要がありました。さらに、パラメーターに「'no_story'=>1」は必要ありません。

于 2012-08-02T15:40:27.990 に答える