如何从JavaScript / jQuery创建推文?

时间:2012-09-28 10:54:34

标签: javascript jquery twitter

我正在尝试允许用户在我的jQuery应用程序中发布链接。基本上,他们创建自己的页面,然后他们选择一些社交网络来分享它。单击“共享”后,应用程序将循环显示社交网络复选框,并将其发布到每个复选框。

我很难找到一个很好的方法来为Twitter做这个 - 我在网上看到的每个地方,我似乎都有相互矛盾的建议。

所以,基本上,应该发生的是:

  • 用户在我的应用中选中“Twitter”复选框,然后点击“分享”。
  • 应用程序应该在幕后生成一个网址,并为该用户的帐户创建一条推文。
  • 然后,如果需要,用户可以在Twitter上显示验证框(可能是他们需要登录并验证推文)
  • 推特被添加到他们的推特上。

这听起来并不复杂,但我找不到办法!

修改

感谢下面的回复,我现在得到以下代码:

var serverUrl = 'https://twitter.com/intent/tweet?url="www.rocketreel.com"&text="Test"';

$.ajax({
  type: "GET",
  url: serverUrl,
  success: function(data) {
},

error: function(data) {
  var obj = jQuery.parseJSON(data);
  alert(obj.error);
  }
});

现在,当我运行它时,我(在控制台中):

XMLHttpRequest cannot load https://twitter.com/intent/tweet?url=%22www.mysite.com%22&text=%22Test%22. Origin null is not allowed by Access-Control-Allow-Origin.

我目前无法从实际网站运行它,所以使用localhost - 这就是为什么我会这样做的?

1 个答案:

答案 0 :(得分:1)

您是否尝试过阅读api文档?

https://dev.twitter.com/docs/tweet-button

https://twitter.com/about/resources/buttons#tweet

您可以查看推文按钮的代码并执行推文按钮后面的代码。很直接......

这是被调用的网址:

https://twitter.com/intent/tweet?original_referer=yoururl.com&source=tweetbutton&url=http://urltotweet.com&text=[text to tweet]

<强>更新

您正在遇到cross origin issue。你不能通过ajax从其他来源加载数据,除非你使用一些变通办法(CORS, proxy,...,因为你不能修改twitter api,代理是你唯一的选择。但这也可能带来它的复杂性..你可能根本不需要。

只需打开一个包含位置的新窗口... window.open(...),或者使用提供的网址创建一个iframe,以便通过ajax加载完整页面。