서버 액세스 토큰 발급받기
Shakr API를 사용하기 위해서는 OAuth 2.0을 이용하여 액세스 토큰을 발급받아야 합니다. API 사용을 위해 발급받으신 Client ID와 Client Secret을 이용하여 간단하게 액세스 토큰을 발급받을 수 있습니다.
액세스 토큰은 크게 서버 액세스 토큰(server access token)과 스코프드 액세스 토큰(scoped access token) 두 가지로 나눌 수 있는데, 서버에서 API 호출을 할 때는 모든 권한을 보유한 서버 액세스 토큰을 사용하며, 이 토큰은 API로 만들어진 모든 리소스에 대한 권한을 가지기 때문에 브라우저 등을 통해 클라이언트에 직접 노출되지 않도록 주의해야 합니다.
액세스 토큰에 대해 더 알아보고 싶으시다면, 인증 및 액세스 토큰 페이지를 참고해주세요.
토큰 발급
아래 예시 코드를 이용하여 서버 액세스 토큰을 발급받을 수 있습니다. 아래 언어 중 하나를 선택하고, Client ID와 Client Secret을 채워 넣어 토큰을 요청해보세요.
- cURL
- Node.js
- Elixir
curl 'https://api.shakr.com/oauth/token' \
-X POST \
--header 'Content-Type: application/json' \
--data-raw '{
"grant_type": "client_credentials",
"client_id": "YOUR_CLIENT_ID",
"client_secret": "YOUR_CLIENT_SECRET"
}'
{
"access_token": "eyJ0eXA...K-tsNKOcw", // 서버 액세스 토큰
"created_at": 1611559222,
"token_type": "bearer"
}
const fetch = require('node-fetch');
fetch(
'https://api.shakr.com/oauth/token',
{
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
grant_type: 'client_credentials',
client_id: 'YOUR_CLIENT_ID',
client_secret: 'YOUR_CLIENT_SECRET',
})
}
)
.then(res => res.json())
.then(({ access_token }) => {
console.log(access_token); // 서버 액세스 토큰
});
request = %HTTPoison.Request{
url: "https://api.shakr.com/oauth/token",
method: :post,
headers: [
{"Content-Type", "application/json"}
],
body: Jason.encode!(%{
grant_type: "client_credentials",
client_id: "YOUR_CLIENT_ID",
client_secret: "YOUR_CLIENT_SECRET"
})
}
with {:ok, %{status_code: 200} = response} <- HTTPoison.request(request),
{:ok, decoded_json} <- Jason.decode(response.body) do
# 서버 액세스 토큰
IO.puts(decoded_json["access_token"])
end
JSON 객체 내에 있는 access_token
이 서버 액세스 토큰입니다. 이를 잘 저장해 두고 추후 API 요청 시 사용할 수 있습니다.
서버 액세스 토큰을 발급받았다면 템플릿을 선택할 차례입니다! 크리에이티브 템플릿 고르기 단계로 넘어갑시다.