从用户名中检索facebook用户id


Retrieve facebook user id from the username

如果我有他的用户名,我想检索一个Facebook用户id。这是从图形API弃用,但我想知道一个工作围绕获得id,如果我有用户名。

有一个网站可以做到这一点,但我不知道他们是怎么做到的。

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

我已经找到了一种从用户名中找到用户id的机制。

下面是标识如何从username中查找userid的c#代码。我试着从facebook url中读取HTML。并试图读取元标签下面的用户id

<<p> 元代码/strong>
<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. 我使用了"htmllagilitypack .dll"来加载html并像XML一样解析它。
  2. 像下面这样测试调用函数。findUserIdfromUsername("https://facebook.com/USERNAME");
  3. 我只测试了3-4个url并获得了正确的用户名。
  4. 我没有使用任何API来查找USERID。
  5. 我的英语和舞步都不太好。所以请管理它。