0

Zendesk アプリを作成するのは初めてで、こちらの入門ガイドに従っています。

簡単に言えば

Zendesk のファイル内の AJAX 呼び出し構文に外部 API の URL を渡すことができませんapp.jsシンプルな Zendesk アプリのコードは、ここからダウンロードできます。

例えば

以下のURLを渡すとrequests

https://api.hubapi.com/contacts/v1/contact/email/namgivu@gmail.com/profile?hapikey=demo

Zendesk app.js が呼び出します

https://namgivu.zendesk.com/proxy/to/https%3A%2F%2Fapi.hubapi.com%2F   contacts%2Fv1%2Fcontact%2Femail%2Fnamgivu%40gmail.com%2Fprofile%3Fhapikey%3Ddemo

つまり、サフィックスhttps://namgivu.zendesk.com/proxy/to/が URL に自動的に追加され、完全な URL リクエストではなくパラメータになります。

詳細に

たとえば、Zendesk APIメソッドを正常に呼び出すことができます'/api/v2/users/4829450618.json'。Hubspot API などの外部 API を呼び出すことはできませんが、この完全な URL 呼び出しなどです。

peseudo context以下の通りです。

app.js以下のサンプルのコンテキストを見てみましょう。

  1. 経由でコードを開始するだけです'app.activated': 'myStart'
  2. 次に、さまざまなケースで AJAX リクエストthis.ajax('myAJAXCall')を呼び出します。1) 内部 Zendesk API、2a) ターゲット Hubspot API 呼び出し、2b) 簡略化された外部 API 呼び出し、および 2c) 単純なテスト呼び出し。

#2b と #2c の場合、Zendesk は URL パラメーターに URL プレフィックスを自動的に追加しますが、これは私たちが望んでいるものではありません。つまり、設定した正確な完全な URL に AJAX 呼び出しを送信したいのです。

私の質問は、app.jsZendesk アプリ コード内から外部 API メソッドを呼び出す方法です。

ここに画像の説明を入力

(function() {

    return {
        events: {
            'app.activated': 'myStart',     
       },

        myStart: function() {
            this.ajax('myAJAXCall').then(
                //succeeded handler
                function(data) {
                    this.switchTo('someView', data);
                },

                //failed handler
                function() {
                    this.switchTo('errorView');
                }
            );
        },

        requests: {
            myAJAXCall: function() {
                return {
                    url: '/api/v2/users/4829450618.json', //case 1 - internal Zendesk api call

                    url: 'https://api.hubapi.com/contacts/v1/contact/email/'+email+'/profile?hapikey=' + this.hubspotAPIKey, //case 2a - target Hubspot api call
                    url: 'http://someDomain.com/abb', //case 2b - simplified `external api` call
                    url: 'abb',  //case 2c - simplified `external api` call

                    type: 'GET',
                    dataType: 'json',
                };
            }, 
        },        
    };

}());
4

1 に答える 1

2

驚くべきことに、Zendesk サポート チームに感謝します。cors:false

ここに画像の説明を入力

于 2016-03-18T11:19:06.163 に答える