2015-07-01 2 views
0

Я ищу решение для получения токена-носителя от API с использованием имени пользователя и пароля.Получить токен-носитель от API с помощью R

Сейчас я читаю токен через Chrome и извлекаю данные, которые, конечно же, не идеальны.

Я пробовал с httr и завивать, чтобы получить доступ через R и получить токен Носителя, но я думаю, что я совсем потерян.

Я думаю, что это должно быть довольно просто, из регистрационной информации я собрал маску из логина как {"username":"name","password":"pw"}, разве это не должно работать с командой POST и правильными заголовками?

POST(url="api_login",config=add_headers(c("username: name" 
             ,"password: pw"))) 

Не работает вообще. Я могу предоставить пример для PHP, который выглядит следующим образом:

<?php 

     // Include Request and Response classes 

     $url = 'url'; 

     $params = array(
       'username' => 'sample_username', 
       'password' => 'sample_password' 
      ); 

     // Create a new Request object 
     $request = new Request($url, 'POST', $params); 

     // Send the request 
     $request->send(); 

     // Get the Response object 
     $response = $request->getResponse(); 

     if($response->getStatusCode() == 200) { 

      print_r($response->getBodyDecoded()); 
     } 
     else { 

      echo $response->getStatusCode() . PHP_EOL; 
      echo $response->getReasonPhrase() . PHP_EOL; 
      echo $response->getBody() . PHP_EOL; 
     } 
    ?> 

Как я не очень хорошо знакомы с PHP я был бы очень рад за любую помощь или руководство в правильном направлении. Я искал часы для доступа к API через R, но все выглядит очень специфично для специального входа.

Я понял, что этот API использует устаревшую версию Swagger, если это полезная информация.

+0

Если у вас есть доступ к API, этот API должен предоставить вам информацию о токенах, войдя в вашу учетную запись. можете ли вы поделиться тем сервисом, к которому вы пытаетесь получить доступ к API? –

+0

да, конечно, документацию можно найти на https://www.exoclick.com/developers/ – Sebastian

+0

см. [Link] (https://api.exoclick.com/v1/manual/api_interface/README.html) Интерфейс API manual –

ответ

1

Это то, чем я занимаюсь, войдите с веб-сайтом и прочитайте токен из своего браузера. Я хочу войти в систему из R, извините, если я не понял.

Я обновил свой код теперь:

opts=curlOptions(verbose=TRUE, 
       ssl.verifypeer = T) 
postForm(url, 
     "username:" = uname, "password:"=pswd, 
     httpheader = c('Content-Type' = 'application/json', Accept = 'application/json'), 
     .opts=opts, 
     style='POST' 
) 

Что приводит к ошибке: SSL сертификат проблема: самостоятельно подписанный сертификат в цепочке сертификатов.

Я пробовал много разных сертификатов с «cainfo» внутри аргумента, но не могу заставить его работать.

+0

Наконец-то я получил правильное тело, содержимое (POST (url, body = list ( 'username' = name, 'password' = pw, 'content-type' = 'application/json;', 'transfer- encoding '=' chunked '), encode = "json")). – Sebastian