0

私がやろうとしていることの正確な例が見つからないので、これが繰り返しの質問である場合は申し訳ありませんが、過去数時間探しました。

Facebook アプリで、自分が管理しているページのステータスを更新したり、ウォールに投稿したりできるようにしたい: http://www.facebook.com/amazingjobsapp CRON ジョブの一部として。

これを行う方法の例が見つからないようです。どんなポインタでも大歓迎です。

編集:

私は以下のコードを使用していましたが、現在は次のようになっています。

object(FacebookApiException)#11 (8) { ["result":protected]=> array(1) { ["error"]=> array(3) { ["message"]=> string(72) "(# 200) ユーザーはアプリケーションがこのアクションを実行することを承認していません" ["type"]=> string(14) "OAuthException" ["code"]=> int(200) } } ["message":protected]= > string(72) "(#200) ユーザーはアプリケーションがこのアクションを実行することを承認していません" ["string":"Exception":private]=> string(0) "" ["code":protected]= > int(0) ["ファイル":保護]=> 文字列(86)

ページ ID 413282938687554 にアプリの manage_page および publish_stream 権限を付与する手順を教えてもらえますか?

編集2:graph.facebook.com/me/accountsを見ると、上記のページIDとアクセストークンが表示されますが、コードでそれを使用すると、まだエラーが発生します。

4

4 に答える 4

2

manages_pages許可を得る必要があります

<?php
$attachment = array(
    'message' => 'this is my message',
    'name' => 'This is my demo Facebook application!',
    'caption' => "Caption of the Post",
    'link' => 'http://mylink.com',
    'description' => 'this is a description',
    'picture' => 'http://mysite.com/pic.gif',
    'actions' => array(
        array(
            'name' => 'Get Search',
            'link' => 'http://www.google.com'
        )
    )
);

// To authenticated user's wall
$result = $facebook->api('/me/feed/', 'post', $attachment);

// To page's wall
$result = $facebook->api('page-id/feed/','post',$attachment);

// To user's wall
$result = $facebook->api('user-id/feed/','post',$attachment);
于 2012-08-07T19:56:11.970 に答える
2

ドキュメントで何かを見逃したかもしれませんが、解決策は次のとおりです。

これは、cron ジョブから投稿しようとしている人向けであることに注意してください。

  • アプリに manage_pages、publish_stream、および offline_access 権限を付与します
  • グラフ API エクスプローラーで me/accounts からページのアクセス トークンを取得します。
  • fb オブジェクトを初期化した直後に、単純な 1 行のコードを追加します。

    $facebook->setAccessToken("XXXXX");
    

アクセス トークンは、手順 2 で取得した PAGE アクセス トークンである必要があることに注意してください。アプリの認証を解除すると、アクセス トークンが変更されることに注意してください。

于 2012-08-09T08:13:49.937 に答える
0

修正したと思っていたところ、実際にアプリ自体にログインしているときにのみ投稿が機能するわけではありません。

私は、AmazingJobsCommunityページの「me/accounts/」からのアクセストークンで言及されているすべての権限を持つShawnのコードを使用しています。

私は間違いなくmanage_pages、publish stream、offline_acessを自分のFacebookアカウントに付与しました。次に、グラフAPIエクスプローラーを使用してアカウント内のアクセストークンを見つけ、それを切り取ってコードに貼り付けました。何か案は?

于 2012-08-08T09:31:58.780 に答える
0
  1. manage_pagesアプリケーションは&publish_streamパーミッション を要求する必要があります。
  2. page_access_tokenグラフ API/accounts呼び出しからページを取得します。所有する各ページには、独自のトークンがリストされます。このトークンは、データベースに保存するか、必要なときにアクセスできます。このトークンを公開または共有することはお勧めしません。
  3. 投稿には「php-sdk」を使用します。

参照: http://developers.facebook.com/docs/authentication/

参照: http://developers.facebook.com/docs/reference/php/

注: ウォールに投稿するときにページになりすます (つまり、現在のユーザーではなく、ページとして投稿する) には、上記のページ アクセス トークンで説明されているように、manage_pages および publish_stream 権限を持つページ access_token を使用する必要があります。

例: ユーザーが Facebook 用の php sdk をインストールして初期化したと仮定します。


<?php
if($user){
  $vars = array(
  'message' => "message goes here",
  // you can uncomment below to enable an image with caption and link.
  //'picture' => "image",
  //'link' => "Link here",
  //'name' => "Name here",
  //'caption' => "Caption here",
  'show_error' => true,
  // comment out the access_token array below to post as a user instead of as page.
  array('access_token' => YourPageAccessToken)
);
$testpost = $facebook->api('YourPageId/feed', 'post', $vars);
}
?>

この回答が役に立った、または正しいと思われる場合は、マークアップするか、正しいとマークすることを忘れないでください。そうすれば、将来のユーザーが回答を見つけやすくなります。

于 2012-08-07T19:51:53.697 に答える