2016-04-02 14 views
0

私はjavascript APIの「高度な初心者」です。私のニーズはおそらく2世代ですが、壁に頭を打つと、一晩中あなたが提供できる基本的な指導に感謝します。私はOauth2を使ってBaseCampサイトにアクセスするためのアプリを認証しようとしています。Oauth2/BaseCamp APIで応答データを取得できません

私はGrant Expressを使用しており、registered my appを持っていて、私はclient_ID、client_secret、およびredirect uriを受信しました。リダイレクトuriでは、 "auth"というフォルダを追加しましたが、その中の唯一のものは空のindex.htmlファイルです。したがって、リダイレクトURLはhttp://example.com/authです。私のローカルマシン上

私はOAuthのと呼ばれるディレクトリを作成し、その中に走っています

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) 
}) 
:私はこのようになりますファイルapp.jsを作成 NPMは特急 NPMが付与特急

をインストールインストール

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/basecampに私のブラウザタイプに行くとき

urlはにリダイレクトん: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 が、ページには、このエラーが含まれています。私は、コンソールでも、(このエラーが表示さhttp://localhost:3000/connect/basecamp/callback :私が得た場合:error: Provided redirect_uri is not approved

をしますサーバーの{ error: { error: 'Grant: OAuth2 missing code parameter' } }

Basecamp API documentation OAuth 2ライブラリをclient_id、client_secret、およびredirect_uriで設定します。 https://launchpad.37signals.com/authorization/newを使用して承認を要求し、https://launchpad.37signals.com/authorization/tokenを使用してアクセストークンを取得します。 「それ」とは何ですか、そして、どういう意味でしょうか、これらのURLを使うように言いますか?これらのURLをオブジェクトとしてapp.jsファイルに追加しますか?または別のファイルに移動しますか? http://example.com/authに何かを追加する必要がありますか?

ここからどこに行くのかわかりません....ご協力いただきありがとうございます。

答えて

関連する問題