Erlang中的Google Oauth2

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Erlang中的Google Oauth2相关的知识,希望对你有一定的参考价值。

如何在Erlang中生成Google oauth2访问令牌。

我可以在NodejS i中生成令牌。我在Erlang中需要它,因为我所有的其他api代码都在Erlang中。

大段引用

var {google} = require('googleapis');
var MESSAGING_SCOPE = "https://www.googleapis.com/auth/firebase.messaging";
var SCOPES = [MESSAGING_SCOPE];

 var http = require('http')


 function getAccessToken(){
    return new Promise(function(resolve, reject){
        var key = require("./ServiceAccountKey.json");
        var jwtClient = new google.auth.JWT(
            key.client_email,
            null,
            key.private_key,
            SCOPES,
            null
        );
        jwtClient.authorize(function(err, tokens){
            if(err){
                reject(err);
                return; 
            }
            resolve(tokens.access_token+" :  "+tokens.expiry_date);
        });
    });
}

 var server = http.createServer(function(req, res){

     getAccessToken().then(function(access_token){

         res.end(access_token);

     });

 });

 server.listen(3000, function(){
    console.log("Server started");
}); 

试图生成代码

 URL="https://accounts.google.com/o/oauth2/auth",
 Scope="https://www.googleapis.com/auth/firebase.messaging",

 GetURL=URL++"?client_id="++ClientId++"&redirect_uri=com.example.app:/oauth2redirect&scope="++Scope++"&response_type=code",

        Response = httpc:request(URL),
        Response.

返回错误请求

答案

在您的代码中,您创建了一个包含所有必需查询参数的URL并将其放在变量GetURL中,但是您将URL(它只是基本URL)传递给httpc:request。尝试传递GetURL,看看是否能让你更进一步:

    Response = httpc:request(GetURL),

以上是关于Erlang中的Google Oauth2的主要内容,如果未能解决你的问题,请参考以下文章

iOS 中的 Google OAuth2 问题 - “invalid_grant”错误

获取 badarith,[erlang,'+',[error,0],[],同时使用 Erlang 片段在 TSUNG 中执行算术运算

RecyclerView holder中的Android Google Maps动态片段

Android Google Play Oauth2 gtalk authToken 的 requestBody 中的正确凭据

片段中的 Xamarin Android Google 地图错误

如何使用 oauth2 并通过 google api 刷新令牌?