2

Bluemix で言語識別サービスを作成しましたが、R を使用してそれを呼び出そうとしています。

ここに画像の説明を入力

http://www.ibm.com/smarterplanet/us/en/ibmwatson/developercloud/apis/#!/language-identification/identify

これは私が使用しているコードです:

library(httr)
login <- "https://gateway.watsonplatform.net/laser/service/api/v1/txtlid/bb0e9e07-cf44-4e95-a5a1-3fb0d53ac98f"
pars <- list(
  sid="lid-generic",
  txt="how are you"
)
POST(login, authenticate("my_username", "my_password@p"), body = pars)

私が得た応答はもちろん、エラー 401 で、期待されたものではありません。

これから得られる結果は次のとおりです。

Response [https://gateway.watsonplatform.net/laser/service/api/v1/txtlid/bb0e9e07-cf44-4e95-a5a1-3fb0d53ac98f]
  Date: 2015-01-23 12:29
  Status: 401
  Content-type: text/html
  Size: 252 B
--------------------------4bd32c1a987ed099
Content-Disposition: form-data; name="sid"

lid-generic
--------------------------4bd32c1a987ed099
Content-Disposition: form-data; name="txt"

how are you
--------------------------4bd32c1a987ed099--
4

2 に答える 2

2

ここに役立つかもしれないいくつかの「R」コードスニペットがあります: https://github.com/rustyoldrake/R_Scripts_for_Watson

簡単に言うと、getURL (RCurl) および POST (HTTR) を使用した「username_password」による認証を示す構文を以下に示します。

### Initialize Creds and URL
base_url = "https://gateway.watsonplatform.net/dialog-beta/api/v1" 
username = "9XXXXXX-XXXX-XXXX-XXXX-XXXXXXXXX" # from Bluemix Service Credentials
password = "123123123123"
username_password = paste(username,":",password,sep="")


###### FUNCTION - CHECK CLASSIFIER STATUS (DIALOG Example)
watson.nlc.checkclassifierstatus <- function(classifier_id) {
  return(
    getURL(paste(base_url,classifier_id,sep=""),userpwd = username_password)
  )
}

###### FUNCTION CREATE NEW CLASSIFIER  (NLC Example)
watson.nlc.createnewclassifier <- function(file,classifiername) {
  return(POST(url="https://gateway.watsonplatform.net/natural-language-classifier/api/v1/classifiers",
         authenticate(username,password),
         body = list(training_data = upload_file(file),
                     training_metadata = paste("{\"language\":\"en\",\"name\":",classifiername,"}",sep="") 
         )))}
于 2015-09-17T00:14:41.410 に答える
1

http 401 は認証の問題を示します。おそらく、サービスインスタンスを作成したときに割り当てられたユーザーID/パスワードを持っているでしょう。R での HTTP 呼び出しでこれらをユーザー ID/パスワードとして渡す必要があります。

あなたのコードでそれをやっているようです:

POST(login, authenticate("my_username", "my_password@p"), body = pars)

authenticate()呼び出しで間違ったユーザー ID/パスワードをこれらの値にコピーしたのではないでしょうか。

于 2015-01-25T00:22:20.083 に答える