从用户名中检索facebook用户ID

时间:2015-08-04 11:00:02

标签: php facebook facebook-graph-api facebook-php-sdk

如果我有他的用户名,我想要检索Facebook用户ID。 这是从图API中弃用的,但如果我有用户名,我想知道如何获取id。

website这样做,但我不确定他们是如何做到的。

1 个答案:

答案 0 :(得分:4)

我做了R& D,发现给定的网站没有使用API​​从用户名中获取用户ID。 他们正在使用另一种无效的机制。

我找到了1种从用户名中查找用户标识的机制。

以下是c#代码,用于标识如何从用户名中查找userid。 我试图从facebook网址上读取HTML。并尝试阅读下面的元标记来识别用户ID。

META代码

<meta property="al:android:url" content="fb://profile/USERID">

<强>功能

public string findUserIdfromUsername(string facebookURL)
{
    try
    {
        HtmlWeb web = new HtmlWeb();
        HtmlDocument doc = web.Load(facebookURL);

        List<String> keyLst = doc.DocumentNode
                                .SelectSingleNode("//meta[@property='al:android:url']")
                                .Attributes["content"].Value
                                .Split(',').ToList();


        foreach (string strkey in keyLst)
        {
            string[] arrTemp = strkey.Split('/');
            int arrlength = arrTemp.Count();
            string facebookUserID = arrlength > 0 ? (arrTemp[arrlength - 1]) : strkey;
            facebookUserID = facebookUserID.Replace("?id=", "");
            return facebookUserID;
        }
    }
    catch (Exception ex)
    { 

    }
    return "";
}

<强>要求

  1. 我使用了&#34; HtmlAgilityPack.dll&#34;加载html并像XML一样解析它。
  2. 测试调用如下功能。 findUserIdfromUsername(&#34; https://facebook.com/USERNAME&#34);
  3. 我只测试了3-4个网址并获得了正确的用户ID。
  4. 我没有使用任何API来查找USERID。
  5. 我的英语和步骤不太好。所以请管理它。