2016-10-13 16 views
1

現在、統合エンジン用のリアルタイムkikコネクタを開発しています。
メッセージを受信するために、ユーザー名とパスワードを使用してwebsocketエンドポイントに接続します。
悲しいことに、毎回エラー403が表示されます。

他にも見なければならないことがありますか?websocket apiに接続しようとするとエラー403が発生する

いくつかの例:

$ curl -XPOST https://apiv2.unificationengine.com/v2/connection/list -u $USER_NAME:$PASSWORD --data "{}" -k -s | jq 
{ 
    "status": 200, 
    "info": "200 OK", 
    "connections": { 
    "kik": { 
     "uri": "kik://[email protected]" 
    } 
    } 
} 

のWebSocket:

$ wscat --auth "$USER_NAME:$PASSWORD" -c wss://apiv2.unificationengine.com/v2/ws/start 

error: Error: unexpected server response (403) 

答えて

2

あなたはこのライブラリを使用していますか? https://github.com/websockets/wscat

このライブラリはこのように認証をサポートしていますか? -c WSS: "$ PASSWORD $ USER_NAME":--auth

wscat //apiv2.unificationengine.com/v2/ws/start

がこの研究を完了、wscatはwebscoketのためのNPM WS、https://github.com/websockets/wsを使用しています接続。

あなたはあなたがnodejs

VAR AUTH = "基本" +新しいバッファ(USER_ACCESS_KEY + ":" + USER_ACCESS_SECRET)にこのようなbase64で認証を作成することができ、このようにヘッダを試してみて、

var ws = new WebSocket('wss://apiv2.unificationengine.com/v2/ws/start', { 
    origin: 'https://apiv2.unificationengine.com', 
    headers: { Authorization: 'base64 auth' } 
}); 

を確認することができます.toString( "base64");

+0

これで問題は解決しました。 'wscat'がまったく同じコードを使ってAuthorizationヘッダーを生成するので、少し奇妙です。https://github.com/websockets/wscat/blob/master/bin/wscat#L189 – Martin

+0

もう少し研究を重ねると、問題。 apiは 'origin'ヘッダなしで呼び出しを受け付けません。 'wscat'を使うときに' --origin'オプションを設定する必要があります – Martin

+0

@Martin私は統一APIを使っていますが、403エラーが出ます。 Curlでアクセストークンを送信する方法を教えてくれますか? – Simer

関連する問題