1
0

More than 1 year has passed since last update.

[電子レシートAPI] ログイン

Last updated at Posted at 2022-10-02

皆さん、こんにちは。電子レシートサービス{RECEIPT}ROLLERのAPI利用方法記事です。

本日は一番初めに必要となる、ログイン方法を紹介します。

ログインAPI

{RECEIPT}ROLLER APIを利用するには事前にユーザー登録が必要です。そのユーザーIDとパスワードを使いAPIにてログインすることでトークンを取得することができます。その取得したトークンの有効期限は自身で指定することができます。ログイン以外のAPIはここで取得したトークンが必要となります。

エンドポイント/メソッド

エンドポイントはこちらです。
https://api.receiptroller.com/account/login

メソッドはPOSTになります。

リクエスト

フィールド名 必須 備考
userName 必須 事前に登録されたユーザー名
password 必須 事前に登録されたパスワード
expire 必須 yyy-MM-ddTHH:mm:ssで指定してください。

CURLでのリクエスト

curl --location --request POST 'https://api.receiptroller.com/account/login' \
--header 'Content-Type: application/json' \
--data-raw '{
    "userName": "{USERNAME}",
    "password": "{PASSWORD}",
    "expire": "2022-10-03T13:56:05.020Z"
}'

正常レスポンス

{
    "token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxODM3NGJiYi0wNTU3LTRkNzktYmY0MS04NTFiODY3ZDQ2ZDUiLCJqdGkiOiI4OWFmNDViYy03ZjJmLTRlMzQtODhhZi1jNjc5ZWMyN2ZlNDkiLCJpYXQiOjYzODAwMzE2MDQ0NjE2NjcyNSwiaHR0cDovL3NjaGVtYXMueG1sc29hcC5vcmcvd3MvMjAwNS8wNS9pZGVudGl0eS9jbGFpbXMvc3lzdGVtIjoiIiwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS93cy8yMDA4LzA2L2lkZW50aXR5L2NsYWltcy9yb2xlIjpbImFwaSIsImFkbWluIl0sImV4cCI6MTY2NDgwNTM2NSwiaXNzIjoiaHR0cHM6Ly9yZWNlaXB0cm9sbGVyLmNvbSIsImF1ZCI6Imh0dHBzOi8vcmVjZWlwdHJvbGxlci5jb20ifQ.VmeuD0GJdpo_idAf2xlZyPLAygJcDOayKHQ-O_Qvokc",
    "expire": "2022-10-03T13:56:05.02Z"
}

各言語での利用法サンプル

C#


var client = new RestClient("https://api.receiptroller.com/account/login");
client.Timeout = -1;
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
var body = @"{
" + "\n" +
@"    ""userName"": ""{USERNAME}"",
" + "\n" +
@"    ""password"": ""{PASSWORD}"",
" + "\n" +
@"    ""expire"": ""2022-10-03T13:56:05.020Z""
" + "\n" +
@"}";
request.AddParameter("application/json", body,  ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Console.WriteLine(response.Content);

Ruby

require "uri"
require "json"
require "net/http"

url = URI("https://api.receiptroller.com/account/login")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"

request.body = JSON.dump({
  "userName": "{USERNAME}",
  "password": "{PASSWORD}",
  "expire": "2022-10-03T13:56:05.020Z"
})

response = https.request(request)
puts response.read_body

Go

package main

import (
  "fmt"
  "strings"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://api.receiptroller.com/account/login"
  method := "POST"

  payload := strings.NewReader(`{`+"
"+`
    "userName": "{USERNAME}",`+"
"+`
    "password": "{PASSWORD}",`+"
"+`
    "expire": "2022-10-03T13:56:05.020Z"`+"
"+`
}`)

  client := &http.Client {
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
    return
  }
  req.Header.Add("Content-Type", "application/json")
 
  res, err := client.Do(req)
  if err != nil {
    fmt.Println(err)
    return
  }
  defer res.Body.Close()

  body, err := ioutil.ReadAll(res.Body)
  if err != nil {
    fmt.Println(err)
    return
  }
  fmt.Println(string(body))
}

Java

OkHttpClient client = new OkHttpClient().newBuilder()
  .build();
MediaType mediaType = MediaType.parse("application/json");
RequestBody body = RequestBody.create(mediaType, "{\r\n    \"userName\": \"{USERNAME}",\r\n    \"password\": \"{PASSWORD}",\r\n    \"expire\": \"2022-10-03T13:56:05.020Z\"\r\n}");
Request request = new Request.Builder()
  .url("https://api.receiptroller.com/account/login")
  .method("POST", body)
  .addHeader("Content-Type", "application/json")
  .build();
Response response = client.newCall(request).execute();

PHP

<?php
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.receiptroller.com/account/login');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
  'follow_redirects' => TRUE
));
$request->setHeader(array(
  'Content-Type' => 'application/json',
 ));
$request->setBody('{
\n    "userName": "{USERNAME}",
\n    "password": "{PASSWORD}",
\n    "expire": "2022-10-03T13:56:05.020Z"
\n}');
try {
  $response = $request->send();
  if ($response->getStatus() == 200) {
    echo $response->getBody();
  }
  else {
    echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
    $response->getReasonPhrase();
  }
}
catch(HTTP_Request2_Exception $e) {
  echo 'Error: ' . $e->getMessage();
}

NodeJs

var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
  'method': 'POST',
  'hostname': 'api.receiptroller.com',
  'path': '/account/login',
  'headers': {
    'Content-Type': 'application/json'
  },
  'maxRedirects': 20
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData = JSON.stringify({
  "userName": "{USERNAME}",
  "password": "{PASSWORD}",
  "expire": "2022-10-03T13:56:05.020Z"
});

req.write(postData);

req.end();

Python

import requests
import json

url = "https://api.receiptroller.com/account/login"

payload = json.dumps({
  "userName": "{USERNAME}",
  "password": "{PASSWORD}",
  "expire": "2022-10-03T13:56:05.020Z"
})
headers = {
  'Content-Type': 'application/json'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

質問?

質問やバグを発見した場合はこちらからIssueをご登録お願いいたします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0