通过 API 刷新页面

Posted

技术标签:

【中文标题】通过 API 刷新页面【英文标题】:Twitter refresh page via API 【发布时间】:2011-01-27 01:02:25 【问题描述】:

我正在使用 Twitter API(通过 TweetSharp)并且想知道是否可以从 API 自动刷新页面以便所有用户都能看到更新?如果是这样,是否也可以更进一步,只更新部分页面,以便只更新相关更改而不是整个页面?

感谢您的帮助

【问题讨论】:

您是否在 asp.net 页面中显示 twitter 信息? 不,我只是使用应用程序(asp.net 和桌面应用程序)来更新 Twitter 页面。 我大部分时间都在用 TweetSharp 编写一个 twitter 应用程序,所以我可能会提供帮助。您是想为一群用户在 Twitter 上发布推文,还是为一群用户阅读推文,然后在最后一条推文发生变化时更新页面?还是别的什么? 【参考方案1】:

我想我理解你的问题,你想显示一群用户和他们的最后一条推文 - 但继续检查他们的最后一条推文是否已更改并在用户发布推文时更新屏幕?

如果是这样,答案是您需要每隔一段时间异步调用 twitterapi 并下拉每个用户的最后状态(推文) - 如果是新状态,则使用 ajax 更新屏幕部分其中的旧状态(推文)。

在 TweetSharp 中,如果您有朋友列表,您可以使用以下内容提取他们的最后一条推文:

    string profileImageUrl = String.Empty;
    string name = String.Empty;
    string statusText = String.Empty;
    string createdAt = String.Empty;
    string screenName = String.Empty;

    foreach (TwitterUser friend in friends)
    
        try
        
            profileImageUrl = String.IsNullOrEmpty(friend.ProfileImageUrl) ? "" : friend.ProfileImageUrl;
            name = String.IsNullOrEmpty(friend.Name) ? "" : friend.Name;
            statusText = (friend.Status == null || friend.Status.Text.Length == 0) ? "unknown" : friend.Status.Text; //stops nullreferenceexception on instance
            createdAt = String.IsNullOrEmpty(friend.CreatedDate.ToString()) ? "" : friend.CreatedDate.ToString();
            screenName = String.IsNullOrEmpty(friend.ScreenName) ? "" : friend.ScreenName;
        
        catch (NullReferenceException)
        
            profileImageUrl = "";
            name = "unknown";
            statusText = "unknown";
            createdAt = "";
            screenName = "unknown";

所以你可以先在屏幕上显示它。

然后使用jquery(或javascript)定期hit a web service that reads the twitter api,然后使用返回的数据更新最后一条推文,如果它发生了变化。

如果我弄错了,请告诉我。

编辑:

使用 Tweetsharp 将新推文发布到 Twitter 的示例是:

var query = FluentTwitter.CreateRequest().AuthenticateAs(username,password).Statuses().Update("Posting status on ***").AsJson();

【讨论】:

您好,感谢您的帮助。我无法尝试代码 atm,但您的代码会更改 Twitter 页面本身吗?这就是我的目标。因此,如果用户更新了我的应用程序中的某些内容,他们可以通过部分回发看到 Twitter.com 页面自动更新 @superexsl 我添加了一个使用 Tweetsharp 向 Twitter 发布更新的示例【参考方案2】:

我不使用这个 dll,但我正在编写一个,并且 Twitter API 希望您再次调用 - 据我所知,没有刷新。如果此 dll 允许您从某个日期开始查询,那么这是可能的,并且可能是调用的参数。我希望这会有所帮助

【讨论】:

嗨,我不介意跳过这个位的 API 并简单地创建我的 POST 标头。我应该尝试使用自定义标头调用什么方法?感谢您的帮助【参考方案3】:

如果您使用的是 ASP .NET,您可以考虑将 AJAX 与 UpdatePanel 控件一起使用。这可能是使用 ASP .NET 获得所需内容的最简单方法

【讨论】:

嗨,我不太明白如何使用 UpdatePanel 来更新 Twitter 的页面? 我想我误解了你在做什么。您是否使用桌面应用程序提交到 Twitter 但不从中读取?您没有使用 Twitter API 在您编写的 ASP.NET 页面上显示信息吗?如果您希望从桌面应用程序内部刷新与桌面应用程序分开的浏览器窗口,您将需要一些 API 进入浏览器而不是 Twitter。 嗨,我正在创建一个桌面应用程序和一个 ASP.NET 页面。我不介意这是否不适用于桌面应用程序。我不想更新我的页面,我想更新 Twitter 页面本身。就像当你收到一条新推文时,它会自动显示新推文而不刷新页面。我想知道是否可以进行 AJAX 调用来让我的应用程序执行此操作。 (例如,当我更新个人资料图片时,它应该会更改而无需在实际 Twitter 页面上刷新)谢谢 您是说要更新您的 twitter.com 页面吗?如果是这样,我认为你不能,因为 twitter.com 不受你控制。但是您可以创建自己的页面来使用 twitter api(这就是为什么 twitter.com 将其发布为 API,以便第三方开发人员可以创建应用程序来使用 twitter 服务。)通过发送 ajax 请求并在回调中处理页面上的响应功能,因此您创建的页面不会刷新。你明白我的意思吗? 嗨,我知道你的意思,我知道在我控制的网站上使用 AJAX 是可能的。我希望 Twitter API 有一种方法可以让其他人访问他们的 Update 方法。例如,当您发布推文时,它会部分更新,并且推文会出现而不会刷新整个页面。我希望这可能在推文以外的其他方面成为可能

以上是关于通过 API 刷新页面的主要内容,如果未能解决你的问题,请参考以下文章

vue刷新当前页面

vue刷新当前页面

在下一个 js 中使用 webpack5 刷新不需要的页面

采用AJAX + history api做无刷新页面的分页

CDN页面刷新接口定义[高升]

解决connect-history-api-fallback配置后依旧出现刷新页面空白