4

FacebookグラフAPIを使用して、ユーザーがグループのメンバーであるかどうかを確認したい...

私はこれを持っています:

$group = file_get_contents("https://graph.facebook.com/177129325652421/members?access_token=XXXXXXXX");
$group = json_decode($group);

$checkuser = $group->data;

facebook idとを使用して、メンバーであるかどうかをユーザーに確認します。in_array()

if(in_array($_GET["fid"],$checkuser)){

echo "yes";

} else {

echo "no";
}

誰かが私がこれを修正するのを手伝ってもらえますか...私のコードは機能していません...

4

3 に答える 3

4

参照: https ://developers.facebook.com/docs/reference/api/

APIURLを使用します。

https://graph.facebook.com/me/groups

ユーザーのグループを取得します。上記のリンクで、me/をユーザーのFBIDに変更します。また、アクセストークンを渡す必要があります。

返信はJSONでエンコードされます。json_decodePHP連想配列を使用してデコードします。それを繰り返して、必要なグループを確認します。

Graph APIは、すべてのグループを一度に返すわけではありません。各応答の最後にあるページネーションリンクを使用してさらにフェッチするか、limitパラメータを使用して必要な数だけリクエストする必要があります。

次のコードサンプルは、あなたが参加しているグループのIDを投稿します

<?php

$url = "https://graph.facebook.com/me/groups?access_token=AAAAAAITEghMBAMDc6iLFRSlVZCoWR0W3xVpEl1v7ZAxJRI3nh6X2GH0ZBDlrNMxupHXWfW5Tdy0jsrITfwnyfMhv2pNgXsVKkhHRoZC6dAZDZD";
$response = file_get_contents($url);

$obj = json_decode($response);

foreach($obj->data as $value) {
    echo $value->id;
    echo '<br>';
}

/* to check for existence of a particular group 

foreach($obj->data as $value) {
    if ($value->id == $yourID) {
        //found
        break;
    }

    //not found. fetch next page of groups
}

*/

PS-上記のコードを実行すると、次のようなエラーが発生する場合Could not find wrapper for "https"は、PHP拡張機能のコメントを解除/追加する必要がありますextension=php_openssl.dll

于 2012-05-01T03:04:37.903 に答える
3

これを調べていて、これがグーグルでの最初の答えであることがわかりましたが、答えはかなり面倒なようですので、もう少し掘り下げました.

私が見つけた最速の答えは、すべてのグループのメンバーを使用して反復する必要はありませんFQL

SELECT gid, uid FROM group_member WHERE uid = (user id) AND gid = (group id)

これは、空の「データ」オブジェクト、または UID と GID を持つ「データ」オブジェクトを返します。

また、(これまでのところ)、user_groups許可は必要ありません。

https://developers.facebook.com/tools/explorer?fql=SELECT%20gid%2C%20uid%20FROM%20group_member%20WHERE%20uid%20%3D%20551549780%20AND%20gid%20%3D%20282374058542158

この FQL クエリは次のように返します。

{
  "data": [
    {
      "gid": "282374058542158", 
      "uid": "551549780"
    }
  ]
}
于 2014-05-01T21:48:25.037 に答える
2

これは、Facebook が許可しないことを決定したため、Graph API v2.4 以降では不可能のようです: https://developers.facebook.com/docs/apps/changelog#v2_4

「user_groups パーミッションは廃止されました。開発者は引き続き user_managed_groups パーミッションを使用して、個人が管理者であるグループにアクセスできます。この情報は、/v2.4/{user_id}/groups エッジを介して引き続きアクセスできます。 v2.4.」

また、「2015 年 10 月 6 日以降、以前のすべての API バージョンで、これらのエンドポイントは空の配列を返す」とも述べています。しかし、v2.2 と v2.3 ではまだ動作するようです。

于 2015-11-19T16:47:06.210 に答える