2

Nodejs を使用して Lync 用の単純なクライアントを作成しようとしています。http://ucwa.lync.com/documentation/KeyTasks-CreateApplicationに基づいて、このようなものを作成しました。アプリをUCWAに登録する必要がある最後のステップ#9まで機能します。サーバーはコード 500 とばかげた説明で応答します

お探しのリソースに問題があり、表示できません

そしてヘッダー

x-ms-diagnostics': '28032;source="mysource";reason="Web チケットが無効です。"'

var http = require('request-promise');
var lync = {};

lync.setup = function(email, password){
    var self = this;
    var hostname = email.split('@');
    this.username = email;

    //discover urls
    return http.get('http://lyncdiscover.'+hostname[1])
        .then(function(d) {
            var parsed = JSON.parse(d);
            self.urls = {
                self: parsed._links.self.href,
                user: parsed._links.user.href,
                xframe: parsed._links.xframe.href
            };
            return http.get(self.urls.user);
        }).catch(function(err){
            if(err.statusCode == 401){
                var toParse = err.response.headers['www-authenticate'];
                var Oauth = toParse.match(/https:\/\/[\d\w\./_-]*/i)[0];

                var loginPost = {
                    grant_type: 'password',
                    username: email,
                    password: password
                };

                return http.post(Oauth, {form:loginPost});
            }
            return false
        }).then(function(data){
            var parsed = JSON.parse(data);
            //setup authorization
            http = http.defaults({
                headers: {Authorization: parsed.token_type + ' ' + parsed.access_token}
            });
            //console.log(self.urls.user);
            //console.log('Authorization:'+ parsed.token_type + ' ' + parsed.access_token);
            return http.get(self.urls.user);

        }).then(function(data){
            var parsed = JSON.parse(data);
            self.urls.applications = parsed._links.applications.href;

            var registerApp = {
                culture : "en-us",
                endpointId : "2d9dc28d-4673-4035-825c-feb64be28e4e",
                userAgent : "Test"
            };
            var r = "{'userAgent': 'NodeJs',  'endpointId' : '2d9dc28d-4673-4035-825c-feb64be28e4e', 'culture': 'en-US'}";
            return http.post(self.urls.applications, {body: registerApp, json:true});
        })
        .then(function(data){
            console.log(data);
        })
        .catch(function(err){

            console.log(err);
            return false;
        });
};



//run app
lync.setup('login@domain.com', 'password').then(function(ret){

});

ここで重要なポイントを 1 つ。それは私のサーバーではありません。そこにアカウントを持っているだけで、公式の Lync クライアントまたは Pidgin プラグインでログインできます。アプリが UCWA で動作することを "許可" するための追加の手順はありますか?

@ShelbyZ Oauth を使用して簡単に認証できます。認証トークンを受け取っているので、ログインしています。

次のようなjsonを受け取っています

"_links":{ "self":{"href":"link"}, "applications":{"href":"i need this"}, "xframe":{"href":"link"} } }

今。POSTを実行して「アプリケーションを登録」する必要があります。この最後のステップで、500 コードの応答を取得します。@Matthew Proctorが言ったこととは関係ないことを願っています..サーバーを簡単に管理できないため

4

2 に答える 2

0

許可されたドメインのリストにテスト ドメインを追加する前に、同じエラーが発生していました。

これは、PowerShell を介して更新できます。詳細は以下のとおりです。

UCWA の有効化と許可されたドメインの構成

http://localhost/からコードを実行すると、クライアントに同様のエラーが表示されました。彼らの修正は、FQDN (つまりhttp://testmyucwacode.mydomain.com/ ) でコードをテストすることでした。

于 2015-01-26T21:48:58.997 に答える