私には2つの問題があります:
RubyでMSのサーバーに投稿できません。
MSのサーバーから結果を取得できません。
詳細は以下のとおりです。
これが私のルビーコードです:(xxxxxxは私のclient_secretです)
require "net/http"
base_url = URI("https://datamarket.accesscontrol.windows.net/v2/OAuth2-13")
params = {:client_id => :woki,
:client_secret => "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
:scope => "http://api.microsofttranslator.com",
:grant_type => "client_credentials"}
res = Net::HTTP.post_form(base_url, {})
File.open("token", "w").write res.body
このコードを使用してアクセストークンを取得することを選択します。
ただし、エラーが発生するたびに:
rescue in rbuf_fill': Timeout::Error (Timeout::Error)
したがって、代わりに、bashコマンドcurlを使用して投稿すると、応答が返されます。
{"token_type":"http://schemas.xmlsoap.org/ws/2009/11/swt-token-profile-1.0","access_token":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx","expires_in":"599","scope":"http://api.microsofttranslator.com"}
次に、アクセストークンを使用して英語の単語を中国語に翻訳したいのですが、それでも失敗しました。以下は私のコードです:
#!/bin/bash
clear
curl -H "Authorization: Bearer xxxxx" -d "appId&text=apple&to=zh-CHS&from=en&maxTranslations=10" http://api.microsofttranslator.com/V2/Http.svc/GetTranslations
ここで、xxxxxは、上記のアクセストークンから直接コピーされ、「http%3a%2f%2f」のようになります。
http://msdn.microsoft.com/en-us/library/ff512417によると。何も悪いことはないと思います。
しかし、私は得るだけです
Error Status Code: 'InternalServerError'
Details: The server encountered an error processing the request. Please see the server logs for more details.
誰が問題の場所を教えてくれますか?