2017-10-01 1 views
0

Ich versuche, URL zu verteilen (OAuth 2.0) meine Slack-App mit API-Gateway und Lambda-Funktion (AWS), aber ich kann nicht erkennen, wie man den Code zu bekommen. Das zurückgegebene Ereignis ist null.Redirect Link zur Verteilung Slack-App

Mein Lambda-Code:

// Lambda handler 
exports.handler = (event, context, callback) => { 

    var messageTest = { 
      client_id: CLIENT_ID, 
      client_secret: CLIENT_SECRET, 
      code: event.code 
     }; 

     var queryTest = qs.stringify(messageTest); 
     https.get(`https://slack.com/api/oauth.access?${queryTest}`, (res, err) => { 
     console.log("statusCode: ", res.statusCode); 
      console.log("headers: ", res.headers); 

      var data = []; 
      res.on('data', function(chunk) { 
      data.push(chunk); 
      }); 
      res.on('end', function() { 
      var result = JSON.parse(data.join('')) 
      console.log(result); 
      }); 
     });  

     callback(null); 
}; 

Meine Umleitungs-URL ist die Lambda-URL. Das Ereignis, das ich bekomme, ist null.

Wie bekomme ich den "Code" von der oAuth 2.0?

+0

, die für einen Lambda-Handler nicht Code. Wo ist der Rückruf? Was ist 'Codeone'? – dashmug

+0

Sie haben Recht. Ich bearbeite und repariere meine Frage. – Nofar103

Antwort

1

Angenommen, Sie verwenden die Lambda Proxy-Integration (und verwenden daher keine Body Mapping-Vorlage), werden die JSON-Nutzdaten, die Sie an Ihr API-Gateway senden, von Ihrem Lambda als stringifizierte JSON in event.body empfangen.

Also, Sie müssen zuerst analysieren, und Sie können Ihre code bekommen.

const body = JSON.parse(event.body) 
const code = body.code 

Referenz: Input Format of a Lambda Function for Proxy Integration

+0

Ich habe die Lambda Proxy-Integration erst aktiviert, nachdem Sie mich daran erinnert haben. Danke, es ist Arbeit. – Nofar103