可以'无法使用Oauth2/BaseCamp API获取响应数据
Can't get response data with Oauth2/BaseCamp API
我是javascript API的"高级初学者",所以我的需求可能是大二学生,但在我整晚都在墙上撞头之后,请感谢您提供的任何基本指导。我正在尝试使用Oauth2对一个应用程序进行身份验证,以访问我的BaseCamp网站。
我正在使用Grant Express,并且已经成功注册了我的应用程序,因此我收到了client_ID、client_secret和重定向uri。对于重定向uri,我添加了一个名为"auth"的文件夹,但其中只有一个空白的index.html文件。所以重定向url是http://example.com/auth.
在我的本地机器上,我创建了一个名为oauth的目录,并在其中运行:npm install expressnpm安装grant express
我创建了一个文件app.js,看起来像这样:
var express = require('express')
, session = require('express-session')
var Grant = require('grant-express')
var config = {
server: {
protocol: "http",
host: "127.0.0.1:3000"
},
basecamp: {
key: "key_from_basecamp",
secret: "secret_from_basecamp",
callback: "/basecamp/callback"
}
}
var app = express()
app.use(session({secret:'grant',
resave: true,
saveUninitialized: true}))
app.use(new Grant(config))
app.get("/basecamp/callback", function (req, res) {
console.log(req.query)
res.end(JSON.stringify(req.query, null, 2))
})
app.listen(3000, function () {
console.log('Express server listening on port ' + 3000)
})
package.json文件如下所示:
{
"name": "auth",
"version": "1.0.0",
"description": "",
"main": "app.js",
"dependencies": {
"express": "^4.13.4",
"grant-express": "^3.6.0"
},
"devDependencies": {},
"scripts": {
"test": "echo '"Error: no test specified'" && exit 1"
},
"author": "",
"license": "ISC"
}
我走到终端,输入node app.js
,得到响应:Express server listening on port 3000
。还好吧?
当我转到浏览器并键入http://localhost:3000/connect/basecampurl确实重定向到:https://launchpad.37signals.com/authorization/new?client_id=client_id_from_basecamp&response_type=code&redirect_uri=http%3A%2F%2F127.0.0.1%3A3000%2Fconnect%2Fbasecamp%2Fcallback&type=web_server
但页面包含此错误::error: Provided redirect_uri is not approved
如果我必须:http://localhost:3000/connect/basecamp/callback我看到这个错误(也在服务器的控制台中){ error: { error: 'Grant: OAuth2 missing code parameter' } }
在Basecamp API文档中,它指出:使用client_id、client_secret和redirect_uri配置OAuth 2库。告诉它使用https://launchpad.37signals.com/authorization/new请求授权和https://launchpad.37signals.com/authorization/token以获取访问令牌。什么是"it",我该如何告诉它使用这些url?我是否将这些url作为对象添加到我的app.js文件中?还是进入另一个文件?我需要添加一些东西吗http://example.com/auth?
不知道从这里去哪里。。。。非常感谢您的帮助。
问题出在我的重定向url上。应该是http://localhost:3000/connect/basecamp/callback发现新错误!
- 如何更改bigquery API中的计费层选项
- Amazon S3 REST API大小不正确
- 客户端服务器REST API captcha实现
- 使用Facebook live API创建实时视频对象时的隐私设置
- 谷歌放置API:按国家或餐馆名称搜索餐馆
- MeteorJS:在带有回调的vzaar api上正确使用wrapAsync
- 是否可以控制获取哪些Google地图脚本(JavaScript API)
- API密钥使用和检查示例
- 谷歌地图API v3不适用于移动浏览器或PhoneGap
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- 谷歌地图JS API+JSON-多个标记没有显示
- 单击超链接时,如何使用Google Maps API v3缩放地图
- 如何在 API 调用后和 if 语句中启用提交按钮
- 与运行长作业(javascript,node.js)的第三方API同步的最佳实践
- 搜索api在mac上显示对话框
- Backbone.js restful json API design
- 标记的实时更新,无需加载页面谷歌地图API V3
- 是否可以使用iframe API在iOS浏览器上播放youtube视频
- 对API数据使用声明性绑定
- 可以'无法使用Oauth2/BaseCamp API获取响应数据