タイトル | : みんなの自動翻訳WebAPIをVB6またはVBAから利用したい |
記事No | : 16140 |
投稿日 | : 2015/04/17(Fri) 09:59 |
投稿者 | : IMA |
お世話になります。 IMAと申します。 Windows8.1や7での利用で最近はExcelVBAをよく利用します。 みんなの自動翻訳 https://mt-auto-minhon-mlt.ucri.jgn-x.jp/ にはWebAPIが提供されています。 例えば、サンプルがPHPで載っており、私もPHPでは動作確認が出来ました。 include("lib/OAuth/OAuthStore.php"); include("lib/OAuth/OAuthRequester.php"); define("NAME", ""); define("KEY", ""); define("SECRET", ""); define("URL", ""); $options = array("consumer_key" => KEY, "consumer_secret" => SECRET); OAuthStore::instance("2Leg", $options); $method = "POST"; $params = array( "key" => KEY, "name" => NAME, "text" => "Hello World!!", "type" => "xml", "data" => "Logging Data", ); try { $request = new OAuthRequester(URL, $method, $params); $result = $request->doRequest(); print_r($result); } catch(OAuthException2 $e) { echo $e->getMessage(); }
結果 XXXXXはダミーデータです。 OAuthRequester Object ( [files:protected] => [request:protected] => [store:protected] => OAuthStore2Leg Object ( [consumer_key:protected] => de530109a8946afc5f0daa28be6b656c0550XXXXX [consumer_secret:protected] => d6446346aff9d5cb118de1d6e57XXXXX [signature_method:protected] => Array ( [0] => HMAC-SHA1 ) [token_type:protected] => ) [usr_id:protected] => 0 [signed:OAuthRequestSigner:private] => [realm:protected] => [param:protected] => Array ( [key] => de530109a8946afc5f0daa28be6b656c0550XXXXX [name] => hogehoge [text] => Fontless%20structured%20document%20image%20representations%20for%20efficient%20rendering [type] => xml [data] => Logging%20Data ) [uri_parts:protected] => Array ( [scheme] => https [host] => mt-auto-minhon-mlt.ucri.jgn-x.jp [path] => /api/mt/patent_en_ja/ [port] => 443 [user] => [pass] => [query] => [fragment] => ) [uri:protected] => hhttps://mt-auto-minhon-mlt.ucri.jgn-x.jp/api/mt/patent_en_ja/ [headers:protected] => Array ( ) [method:protected] => POST [body:protected] => ) Array ( [code] => 200 [headers] => Array ( [date] => Wed, 15 Apr 2015 03:22:12 GMT [server] => Apache [expires] => Thu, 19 Nov 1981 08:52:00 GMT [cache-control] => no-store, no-cache, must-revalidate, post-check=0, pre-check=0 [pragma] => no-cache [content-length] => 415 [content-type] => application/xml [set-cookie] => PHPSESSID=5otv47e5d8e758s2prmnotqpn0; path=/; secure [connection] => close ) [body] => <?xml version="1.0" encoding="UTF-8"?> <resultset> <code>0</code> <message></message> <request> <url>hhttps://mt-auto-minhon-mlt.ucri.jgn-x.jp/api/mt/patent_en_ja/</url> <text>Fontless structured document image representations for efficient rendering</text> </request> <result> <text>fontless効率的なレンダリングのために構造化文書画像表現</text> </result> </resultset> ) これをVBAで動かそうとしているのですが、523:リクエストnameエラーなどでどん詰まり状態です。 oauth 2legged認証になると思いますが、下記のHPなども参考にしているのですが???状態です。 http://d.hatena.ne.jp/n-3104/20110718/1311002173 現状のテストコードは、以下の様な感じです。(一部省略しています) Set XMLHTTP = New MSXML2.XMLHTTP Set param = New Scripting.Dictionary param("oauth_consumer_key") = "de530109a8946afc5f0daa28be6b656c0550XXXXX" param("oauth_signature_method") = "HMAC-SHA1" timeStamp = DateDiff("s", #1/1/1970#, Now) param("oauth_timestamp") = CStr(DateDiff("s", #1/1/1970#, Now())) param("oauth_nonce") = param("oauth_timestamp") * 333333 param("oauth_version") = "1.0" '電子署名の作成 MakeSign "POST", urlRequestToken, param sPostData = "key=de530109a8946afc5f0daa28be6b656c0550XXXXX" & _ "&name=hogehoge&text=" & EncodeURL(stext) PostData = StrConv(sPostData, vbFromUnicode) XMLHTTP.Open "POST", urlRequestToken, False XMLHTTP.setRequestHeader "Authorization", "OAuth " & BuildHeader(param) XMLHTTP.send (PostData) OAuthStatus = XMLHTTP.statusText 'リクエスト成否の状態を取得 Debug.Print XMLHTTP.responseText 皆様のアドバイスを頂ければ幸いです。
|