OAuth-авторизация в обратном вызове pipeDrive с использованием экспресс-фреймворка - PullRequest
0 голосов
/ 07 декабря 2018

Я создал приложение на sandbox.pipedrive.com в Marketplace Manager, а затем создал обратный вызов, который попросил пользователя установить приложение, которое я настроил в pipedrive.

Если пользователь разрешает установку, он перенаправляется на мой URL обратного вызова в контроллере, мой контроллер код: -

app.get('/pipedrive-callback', function(req, res) {
    console.log('Success')
});

Теперь в функции я хочу обменять токен авторизации.Может ли кто-нибудь помочь мне решить эту проблему.

1 Ответ

0 голосов
/ 13 декабря 2018

Можете ли вы попробовать это?Вам нужно отправить еще один почтовый запрос на их сервер после того, как пользователь будет перенаправлен на ваш обратный вызов.После перенаправления вы получите код авторизации из параметров запроса.Вы должны отправить этот код в этом почтовом запросе, чтобы получить текущие токены, которые позволят вам творить чудеса.

app.get('/pipedrive-callback', function (req, res) {
    console.log('Success');
    const authorization_code_from_service = req.query.code; // This will extract the authorization_code from the call back url.

    //Here goes your step 4 + 5. You need to make a post request to their server now. For this, there is a library aka "request" in npm. 
    // Here is the link for that https://www.npmjs.com/package/request

    const request = require("request");

    const formData = {
        "grant_type": "authorization_code",
        "redirect_uri": "rediect url that you have set for your app",
        "code": authorization_code_from_service
    }


    request.post({
            url: 'https://oauth.pipedrive.com/oauth/token',
            form: formData
        },
        function (err, httpResponse, body) {
            //This will be the data that you need for further steps. Actual token, expiry time etc
            console.log(body);
        }
    );

});

Ссылка Npm: https://www.npmjs.com/package/request

...