2

グループ/ページとユーザー ウォールに投稿できますが、選択したウォールに投稿するときにアプリにエラーが表示されないようにしたいのですが、選択したウォールで投稿が許可されていない場合、投稿できるかどうかを知る方法はありますか?ターゲットの壁に?

注:2つの同様の質問を見つけましたが、それらは私が望むものとは正確には関係ありません

ユーザーのウォールに投稿できる 1 つのアプリケーション

2 友人が私に彼のウォールに投稿することを許可しているかどうか、php sdk を使用して許可されていないかどうかを確認する方法

否定的な行動をとる前に、コメントで話し合ってください。

ありがとう。

4

2 に答える 2

1

私の知る限り、あなたがすでに言ったように、プライバシーはさまざまなので、あなたが望む方法で正確にチェックする方法はありません. 照会できる唯一のプライバシー設定は、グラフ API を呼び出して実行できるOPEN, CLOSED, or SECRETof groupです。

`http://graph.facebook.com/$Group_id`

privacyこれは、 のいずれかになるフィールド を持つ json データを返しますOPEN, CLOSED, or SECRET

ただし、その上に、投稿をグループ管理者のみに制限できるグループの設定があります。そして、その許可はチェックできません

だから私はあなたがしなければならないことは、返された値をチェックすることだと思います。つまり、投稿を行った$response です。許可が与えられていない場合、返されるデータは次のようになります。

{
   "error": {
      "type": "Exception",
      "message": "You do not have permission to post in this group."
   }
}

したがって、$response「エラー」フィールドがあるかどうかを確認し、それに応じてユーザーに通知できます。ややこのように: if(isset($response['error'])).

詳細については、グループを表す fql テーブルも確認してください (まだ確認していない場合)。

于 2012-04-08T09:20:19.577 に答える
1

ユーザーが自分のウォールに投稿する許可を与えているかどうかを確認する方法を意味していますか?

try {
    // Get the permissions this user has
    $call = $this->facebook->api("/me/permissions");

    // If they have the permission we require ('publish_stream')
    if($call['data'][0]['publish_actions']){
        try{
            // Do your magic here...
            // Also include your access token in the array
            $params = array('message'=> 'hello world');
            $call = $this->facebook->api('/me/feed','POST',$params);

        }catch(FacebookApiException $e) {
            $result = $e->getResult(); // prob no permissions
        }
    }
} catch(FacebookApiException $e) {
    $result = $e->getResult();
}

したがって、基本的には、まずユーザーが特定のアクションに対する権限を持っているかどうかを確認し、持っている場合は に$call[data][0]['publish_action']設定され1 (int)ます。

出力例$call = $this->facebook->api("/me/permissions");

[installed] => (int) 1
[email] => (int) 1
[publish_actions] => (int) 1

Facebookを介してユーザーから上記の権限を持っています。

于 2012-04-08T11:18:29.507 に答える