【问题标题】:Obtain Docusign Access Code via typescript httpClient.post通过 typescript httpClient.post 获取 Docusign Access Code
【发布时间】:2020-10-06 18:39:23
【问题描述】:

我需要一些帮助才能通过 docusign api 获取访问令牌。下面是我在 xcode 中看到的错误代码。通过邮递员进行测试会返回访问代码,但我无法通过应用程序(在本机设备或浏览器中运行)使其工作。在浏览器中运行会给我一个 CORS 错误,但这是意料之中的。为什么会在 iphone 上出错,我不知道。

我正在使用离子打字稿。我看到的大多数示例都使用带有大量代码的 express,我不明白如何集成到 ionic 项目中。如果除了一些小修复之外还有更多的内容,我愿意雇人让它运行。

谢谢

//docusign access token using authorization code
             const post_data = {
              'code': this.dsAuthCode,
              'grant_type': "authorization_code"
            }
    
            // Http Options
             const httpOptions = {
                headers: new HttpHeaders({
                  'Authorization': "Basic " + b64ds
                })
              }
    
          this.httpClient.post('https://account-d.docusign.com/oauth/token', post_data, httpOptions)
          .subscribe((data:any) => {
              this.dsAccessToken = data.access_token
              console.log('Access Token ', data.access_token)
              //this.docsignUserURI(data.access_token)
          }, error => {
              console.log('access token error', JSON.stringify(error));
          });


access token error {"headers":{"normalizedNames":{},"lazyUpdate":null,"headers":{}},"status":0,"statusText":"Unknown Error","url":"https://account-d.docusign.com/oauth/token","ok":false,"name":"HttpErrorResponse","message":"Http failure response for https://account-d.docusign.com/oauth/token: 0 Unknown Error","error":{"isTrusted":true}}

【问题讨论】:

    标签: typescript ionic-framework post httpclient docusignapi


    【解决方案1】:

    这是我现在的工作方式。我从网络文档弹出窗口获取访问代码,然后使用“request-promise”将其传递到 Firebase Cloud Functions 可调用 https 请求以返回承诺。

    .ts page:
    
    async docsignAccessToken(){
       //this.dsAuthCode is a two sided [(ngModel)} on the html page
       // the docusign authorize code is pasted before running this functions
          console.log('starting access token, authcode = ', this.dsAuthCode)
    
          var fbdsAuth = firebase.functions().httpsCallable('dsAuth');
          fbdsAuth({dsAuthCode: this.dsAuthCode, b64ds: b64ds}).then(function(result) {
        // Read result of the Cloud Function.
        this.dsAccessToken = JSON.parse(result.data).access_token
        //this.docsignUserURI(data.access_token)
        // ...
          }).catch(function(error) {
            // Getting the Error details.
            var code = error.code;
            var message = error.message;
            var details = error.details;
            console.log(error)
            // ...
        });  
    
      }
    
    
    
    firebase cloud functions:
    
        export const dsAuth = functions.https.onCall((data, context) => {
        
        
              var request = require('request-promise');;
              var options = {
                'method': 'POST',
                'url': 'https://account-d.docusign.com/oauth/token',
                'headers': {
                  'Authorization': 'Basic ' + data.b64ds,
                  'Content-Type': 'application/x-www-form-urlencoded'
                },
                form: {
                  'code': data.dsAuthCode,
                  'grant_type': 'authorization_code'
                }
              };
              return request(options, function (error, response) {
                if (error) throw new Error(error);
                console.log(response.body);
              });
        
            });
    

    【讨论】:

      猜你喜欢
      • 2016-06-06
      • 2019-07-11
      • 1970-01-01
      • 2016-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多