rest - 集成到 Bit.ly API 版本 4 - 如何生成 OAuth2 令牌以与 Bit.ly API V4 集成并创建缩短的 url?
问题描述
我最难尝试生成OAuth2 令牌以与Bitly API v4集成。他们的文档很难理解,我在网上或 StackOverflow 上找不到太多关于如何完成它的信息。我能够让它工作,并想与其他任何在未来摸不着头脑的人分享解决方案。
下面是生成通用访问令牌、检索组 Guid、生成 OAuth2 令牌和调用 Bitly缩短API 请求的分步指南。
解决方案
Bitly API -获取oAuth2 访问令牌并使用缩短请求使用Postman检索 Tiny Url 的步骤:
在花了大半天的时间试图弄清楚这一点后,我想我会发布这个,以便它可以帮助尝试与Bitly API V4集成的人。
注意: Bitly API V3 将于 2020 年 3 月 1 日停用,因此请务必尽快迁移到 V4。响应中的所有 guid 和其他私有字段已被更改以保护隐私。
单击此链接以参考Bitly API 文档
1.)生成访问令牌:
使用您的凭据登录 bitly.com,然后单击右上角的汉堡菜单。单击您的用户名,然后单击通用访问令牌。检索您的Group Guid需要此通用访问令牌。您将需要此组指南连同您的访问令牌一起进行缩短 URL 请求。
2.)检索组指导:
向https://api-ssl.bitly.com/v4/groups发出GET请求以获取您的 group_guid。您将在授权字段中使用您的通用访问令牌。
下图是标题的外观:
您应该得到一个类似于下面的 JSON 的 JSON 响应:
检索组 Guid GET 响应的 JSON 响应:
{
"groups": [
{
"created": "2019-12-18T13:45:21+0000",
"modified": "2019-12-18T13:45:21+0000",
"bsds": [],
"guid": "XZXUYSJAJ43",
"organization_guid": "JsjFtE841883",
"name": "username",
"is_active": true,
"role": "org-admin",
"references": {
"organization": "https://api-ssl.bitly.com/v4/organizations/JsjFtE841883"
}
}
]
}
您的guid值是您在缩短和其他请求中使用的group_guid 。
3.)检索您的 client_id 和 client_secret
通过使用您的用户凭据登录 bitly.com 来注册您的应用程序,您的应用程序将被分配一个 client_id 和一个 client_secret。您可以通过单击页面右侧的 Hamburger 菜单来完成此操作,单击您的用户名,Registered OAuth Apps,然后在底部应该是一个显示REGISTER NEW APP的按钮。
4.)生成 OAuth2 访问令牌
请参阅Bitly 文档并在“身份验证”选项卡下导航到“交换用户名和密码以获得访问令牌”。
• 打开邮递员
• 向https://api-ssl.bitly.com/oauth/access_token创建一个新的POST请求。
• 复制Curl 命令,但将用户名替换为Bitly 登录用户名,将密码替换为您的Bitly 登录密码。
• 单击导入选项卡并选择过去原始文本并粘贴到 curl 命令
• 在授权选项卡中,将您的client_id粘贴到用户名字段中,并将client_secret粘贴到密码字段中。这将为您执行base64 编码。
• 您的标头只需要Host和Content-Type键和值。您的授权将是一个临时的标题字段,将自动为您生成。
• 您的身体需要:
grant_type :密码(实际密码)
用户名:您在 bitly.com 的用户名
密码:您在 bitly.com 的密码
下面是你的身体应该是什么样子的图片:
• 单击发送,您将收到访问令牌。
5.)缩短网址
• 在 Postman 中打开新标签并向https://api-ssl.bitly.com/v4/shorten发出 Post 请求
• 标题应包括:
• 主机:api-ssl.bitly.com
• 授权:不记名(您在步骤 4 中的访问令牌)
• 内容类型:应用程序/json
• 您的正文应包含以下 JSON:
{
"long_url": "http://twitter.com",
"group_guid": "guid field from Group Guid Response in Step 2"
}
• 单击发送,您应该会看到收到这样的 JSON 响应:
{
"created_at": "2019-12-18T21:50:47+0000",
"id": "yhoo/2PYRS",
"link": "http://yhoo/2PYRS",
"custom_bitlinks": [],
"long_url": "http://yahoo.com/",
"archived": false,
"tags": [],
"deeplinks": [],
"references": {
"group": "https://api-ssl.bitly.com/v4/groups/yourgroupguid"
}
}
JSON 响应中的链接值将是您的新 Tiny URL 链接。
推荐阅读
- encryption - 使用椭圆曲线密码术加密数据
- node.js - 以角度编辑一些 JSON 数据行
- google-chrome - 从电视中删除 Google chromecast 音量事件
- javascript - 如何从 javascript 中的数组中获取特定对象?
- javascript - Javascript将字符串日期转换为有效日期
- aws-api-gateway - Kinesis Stream - API 网关:序列化异常
- c# - 检查对象是否实现了特定的通用接口
- typescript - 我可以在数组中创建嵌套对象吗?
- javascript - React 共享主机部署
- azure-data-factory - ADF - 映射数据流的源文件名中包含“:”字符并收到错误消息