转换推文链接,使其嵌入在asp.net应用程序中

时间:2013-04-06 11:58:41

标签: asp.net twitter embed linq-to-twitter

我想转换一个推文网址,例如https://twitter.com/LindseyGrahamSC/status/320202348263780352,以便自动嵌入。到目前为止,我提出的最好的是使用短代码类型语法,如[tweet:320202348263780352],然后制作嵌入的推文。但我真的只想粘贴网址并让它工作。我被困在如何实现这一目标。到目前为止我所拥有的:

 var ctxTwitterContext = new TwitterContext(auth);

    if (e.Location != ServingLocation.PostList && e.Location != ServingLocation.SinglePost)
        return;

    string regex__1 = @"\[tweet:.*?\]";
    MatchCollection matches = Regex.Matches(e.Body, regex__1);

    for (int i = 0; i < matches.Count; i++)
    {
        Int32 length = "[tweet:".Length;
        string TweetID = matches[i].Value.Substring(length, matches[i].Value.Length - length - 1);
        var embeddedStatus =
               (from tweet in ctxTwitterContext.Status
                where tweet.Type == StatusType.Oembed &&
                    tweet.ID == TweetID
                select tweet.EmbeddedStatus)
               .SingleOrDefault();

        string html = embeddedStatus.Html;

        e.Body = e.Body.Replace(matches[i].Value, String.Format(html));

1 个答案:

答案 0 :(得分:1)

状态ID始终是URL的最后一段。所以,你可以这样做:

  string statusUrl = "https://twitter.com/LindseyGrahamSC/status/320202348263780352";
  string tweetID = statusUrl.Substring(statusUrl.LastIndexOf('/') + 1);

除非我不理解。如果是这样,您可以删除RegEx代码和for循环。