我试图在javscript中解析一点JSON响应.
我通过XmlHttpRequest获取JSON.
var req = new XMLHttpRequest;
req.overrideMimeType("application/json");
req.open('GET', BITLY_CREATE_API + encodeURIComponent(url)
+ BITLY_API_LOGIN, true);
var target = this;
req.onload = function() {target.parseJSON(req, url)};
req.send(null);
parseJSON: function(req, url) {
if (req.status == 200) {
var jsonResponse = req.responseJSON;
var bitlyUrl = jsonResponse.results[url].shortUrl;
}
Run Code Online (Sandbox Code Playgroud)
我在firefox插件中执行此操作.当我运行时,我得到错误"jsonResponse is undefined" var bitlyUrl = jsonResponse.results[url].shortUrl;
.我在这里解析JSON有什么不妥吗?或者这段代码有什么问题?
bit.ly或tinyurl缩短的URL是否到期?
我问,因为我正在考虑将这些缩短的URL保存到数据库中以获取客户端的Twitter服务.
更新:如果你继续发送bit.ly相同的URL,它将返回相同的缩短URL!这很好,因为这意味着我不需要在我的数据库中保留缩短的URL,只需缓存bit.ly /缩短电话.
我真的希望避免在我的数据库中持久缩短URL.
我正在寻找一个即时的URL缩短器,就像tweetdeck的工作原理一样.我找到了许多jQuery和一般的javascript插件,它们接受一个url并在按下按钮时通过缩短服务(如bit.ly)运行它.但是,我还没能找到一个在飞行中做到这一点.我的第一个问题是这已经存在于某个地方吗?其次,如果没有,那么识别需要在文本框中缩短的URL的最佳方法是什么?我的想法:
思考?
我现在正在玩Javascript ......我正在缩小一些使用bit.ly来推特的URL,然后我开始考虑一个可以使用他们的API缩小我想要的URL的自动化流程,然后我看了他们的文档,我看到他们只支持PHP(有一些Javascript),但无论如何,我只能使用Javascript进行此操作?
我只是学习python,并对如何实现这一点感兴趣.在寻找答案的过程中,我遇到了这项服务:http://www.longurlplease.com
例如:
http://bit.ly/rgCbf可以转换为:
http://webdesignledger.com/freebies/the-best-social-media-icons-all-in-one-place
我做了一些用Firefox检查,看到原始网址不在标题中.
我正在开发一个REST API.关键对象("名词")是"项目",每个项目都有唯一的ID.例如,获取ID为foo的项目的信息:
GET http://api.example.com/v1/item/foo
可以创建新项目,但客户端无法选择ID.相反,客户端发送一些表示该项目的信息.所以要创建一个新项目:
POST http://api.example.com/v1/item/
hello=world&hokey=pokey
使用该命令,服务器检查我们是否已有信息项hello=world&hokey=pokey
.所以这里有两种情况.
案例1:该项目不存在; 它被创造了.这种情况很容易.
201 Created
Location: http://api.example.com/v1/item/bar
案例2:该项目已存在.这是我正在努力的地方......不确定什么是最好的重定向代码.
301 Moved Permanently
?302 Found
?303 See Other
?307 Temporary Redirect
?Location: http://api.example.com/v1/item/foo
我研究过维基百科的描述和RFC 2616,但这些都不是完美的.以下是我在这种情况下寻找的具体特征:
重定向是永久性的,因为ID永远不会改变.因此,为了提高效率,客户端可以而且应该直接向ID端点发出所有未来请求.这表明301,因为其他三个是临时的.
重定向应该使用GET,即使此请求是POST.这表明303,因为所有其他技术上都应该重新使用POST方法.实际上,浏览器将使用GET for 301和302,但这是一个REST API,而不是浏览器中常规用户使用的网站.
它应该广泛使用并且易于使用.具体地,303是HTTP/1.1而301和302是HTTP/1.0.我不确定这是多少问题.
在这一点上,我倾向于303只是为了在语义上正确(使用GET,不要重新POST),只是在"临时"部分吸收它.但我不确定302是否会更好,因为在实践中它与303相同,但不需要HTTP/1.1.但如果我走下那条线,我想知道301是否因为同样的原因加上"永久"部分更好.
赞赏的想法!
编辑:让我试着用一个更具体的例子来更好地解释这个"获取或创建"操作的语义:URL缩短.无论如何,这实际上更接近我的应用程序.
对于URL缩短器,到目前为止最常见的操作是按ID检索.例如,对于http://bit.ly/4Agih5,bit.ly接收ID为4Agih5,并且必须将用户重定向到其对应的URL.
bit.ly已经有了一个API,但它不是真正的RESTful.为了举例,让我构建一个更RESTful的API.例如,查询ID可能会返回有关它的各种信息(例如分析):
GET http://api.bit.ly/item/4Agih5
现在,如果我想提交一个新的URL到bit.ly来缩短,我不知道我的URL的ID,所以我不能使用PUT.我会改用POST.
POST http://api.bit.ly/item/
url=http://stackoverflow.com/
(但编码)
如果bit.ly之前没有看过这个URL,它会为它创建一个新ID,并通过201 Created重定向到新ID.但是,如果它已经看到了该URL,它仍然会重定向我而不进行更改.这样,我可以点击该重定向位置以获取缩短的URL上的信息/元数据.
就像这个URL缩短的例子一样,在我的应用程序中,碰撞并不重要.一个URL映射到一个ID,就是这样.因此,URL之前是否缩短并不重要; 无论哪种方式,将客户端指向它的ID都是有意义的,无论是否需要首先创建ID.
所以我可能不会改变这种方法; 我只是问它最好的重定向方法.谢谢!
我希望能够http://bit.ly/thecakeisalie
通过他们的API 生成自定义bit.lys(输入内容).这似乎不可能,但我想我会检查; 有没有人碰巧知道呢?
我在尝试生成OAuth2 令牌以与Bitly API v4集成时遇到了最困难的时间。他们的文档很难理解,我在网上或 StackOverflow 上找不到太多关于如何完成它的信息。我能够让它工作,并希望与将来会挠头的其他人分享解决方案。
以下是生成通用访问令牌、检索组 Guid、生成 OAuth2 令牌和调用 Bitly缩短API 请求的分步指南。