【问题标题】:How to validate Facebook App ID如何验证 Facebook 应用 ID
【发布时间】:2011-07-11 12:31:26
【问题描述】:

我需要检查给定的 Facebook 应用 ID 是否有效。此外,我需要检查为此应用程序 ID 设置了哪些域和站点配置。不管是通过 PHP 还是 Javascript 完成。

我到处检查,但找不到任何有关此的信息。有什么想法吗?

【问题讨论】:

    标签: php javascript api facebook


    【解决方案1】:

    您可以通过转到http://graph.facebook.com/<APP_ID> 并查看它是否加载了您期望的内容来验证 ID。对于应用信息,请尝试使用admin.getAppProperties,使用属性from this list

    【讨论】:

    • 我在应用程序表中找不到应用程序 URL 和应用程序域。
    • 嗯。它曾经在那里,这很奇怪。我更新了我的答案,应该可以。
    • 谢谢,它要求提供应用程序机密,但我想我可以处理其余的。
    【解决方案2】:

    使用图形 API。只需请求:

    https://graph.facebook.com/<appid>
    

    它应该返回一个如下所示的 JSON 对象:

    {
      id: "<appid>",
      name: "<appname>",
      category: "<app category>",
      subcategory: "<app subcategory>",
      link: "<applink>",
      type: "application",
    }
    

    因此,要验证指定的 app_id 是否确实是应用程序的 id,请查找 type 属性并检查它是否为 application.id。如果根本没有找到 id,它只会返回 false。

    更多信息:https://developers.facebook.com/docs/reference/api/application/

    例如:

    <?php
    $app_id = 246554168145;
    $object = json_decode(file_get_contents('https://graph.facebook.com/'.$app_id));
    // the object is supposed to have a type property (according to the FB docs)
    // but doesn't, so checking on the link as well. If that gets fixed
    // then check on isset($object->type) && $object->type == 'application'
    if ($object && isset($object->link) && strstr($object->link, 'http://www.facebook.com/apps/application.php')) {
       print "The name of this app is: {$object->name}";
    } else {
       throw new InvalidArgumentException('This is not the id of an application');
    }
    ?>
    

    【讨论】:

    • 谢谢它很好用,但我不能带来应用程序配置,类型和其他键没有出现在我的回复中。这是我的测试应用程序 ID 160488080688144
    • 链接确实出现在 json 对象中,对吧?对此进行测试。虽然作为后备,我会测试一系列属性。例如首先检查类型是否可用并且等于应用程序,然后检查链接。毕竟,type 是要查看的文档属性,因此只能假设 FB 会解决此问题。
    【解决方案3】:

    使用图形 API:

    $fb = new Facebook\Facebook(/* . . . */);
    
    // Send the request to Graph
    try {
      $response = $fb->get('/me');
    } catch(Facebook\Exceptions\FacebookResponseException $e) {
      // When Graph returns an error
      echo 'Graph returned an error: ' . $e->getMessage();
      exit;
    } catch(Facebook\Exceptions\FacebookSDKException $e) {
      // When validation fails or other local issues
      echo 'Facebook SDK returned an error: ' . $e->getMessage();
      exit;
    }
    
    var_dump($response);
    // class Facebook\FacebookResponse . . .
    

    更多信息:FacebookResponse for the Facebook SDK for PHP

    【讨论】:

      猜你喜欢
      • 2012-11-06
      • 2015-12-10
      • 1970-01-01
      • 1970-01-01
      • 2011-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多