代码之家  ›  专栏  ›  技术社区  ›  palmic

facebook应用程序API检查用户是否为facebook中的应用程序管理员

  •  5
  • palmic  · 技术社区  · 15 年前

    我有:

    如果用户是facebook的应用程序管理员,而我手里拿着这个,不知怎么可能得到?

    5 回复  |  直到 15 年前
        1
  •  2
  •   M A Hossain Tonu    14 年前

    如果您开发的应用程序正在检查已登录facebook用户的角色,或者您的应用程序只是想识别其所有者或管理员, 然后 http://developers.facebook.com/tools/explorer/?method=GET&path=me%2Faccounts 应该列出应用程序id

    api调用:

    FB.api('/me/accounts', 'get', {"access_token":access_token}, function(response){
        //loop through response to check any application id matches current application id
    });
    

    响应样本:

    {
      "name": "app_name",
      "access_token": "current_token_here",
      "category": "Application",
      "id": "your_owned_app_id"
    },
    {
      "name": "app_name1",
      "access_token": "current_token_here",
      "category": "Application",
      "id": "your_owned_app1_id"
    },
    
        2
  •  6
  •   orba    14 年前

    要获取此类信息,可以使用FQL:

    protected function authorizeByFb(){
    
            $result = $this->fb->api(array(
              'method' => 'fql.query',
              'query'  => "SELECT developer_id FROM developer WHERE application_id='{$appId}' AND developer_id='{$fbUserId}'",
            ));     
    
            if(count($result)==1){
                return true;
            }
    
            return false;
        }
    
        3
  •  1
  •   Jeremy Green    14 年前

    我刚刚使用了Facebook JS API:

    FB.api({ method: 'pages.isAdmin', page_id : fbAppId }, function(response){
        if(response){
            alert('the user is an admin');
        }else{
            alert('the user is not an admin')
        }
    });
    

    它使用FB.api方法访问旧的restapi。这假设您已经调用了FB.init,所以请确保这是在您的init代码之后。

    干杯,
    杰里米

        4
  •  0
  •   Philip    14 年前

    您可以获取已签名的请求,然后检查页面管理是否为1

    <?php
    $signed_request = $facebook->getSignedRequest();
    
    $page_admin  = $signed_request["page"]["admin"];
    if ( $page_admin == 1 ){ 
    echo 'Welcome Admin!';
    } 
    ?>
    
        5
  •  0
  •   Justin Mahon    12 年前

    我尝试使用上面的javascript表单,发现这个方法可以作为一个替代方法,因为旧的restful api已经贬值了。

    function checkAdmin(fbUID, fbAppID){
    
       FB.api({
    
        method: 'fql.query',
        query: 'SELECT role FROM app_role WHERE developer_id ='+fbUID+' AND application_id = '+fbAppID
    
        },
        function(response) {
           if(response.length){
                alert('User is an Admin');
            }
            else{
                alert('User is not an Admin')
            }
        });
     }