質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CloudGarage

CloudGarage(クラウドガレージ)は、初期費用なし、月額1,380円から使える定額型のパブリッククラウドです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

Q&A

0回答

300閲覧

自動バックアップのAPIがエラーになる

moongift

総合スコア250

CloudGarage

CloudGarage(クラウドガレージ)は、初期費用なし、月額1,380円から使える定額型のパブリッククラウドです。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

API

APIはApplication Programming Interfaceの略です。APIはプログラムにリクエストされるサービスがどのように動作するかを、デベロッパーが定めたものです。

0グッド

1クリップ

投稿2018/12/17 05:32

編集2018/12/17 07:04

前提・実現したいこと

CloudGarageのPublic APIを試しています。PHPで書いているのですが、自動バックアップ情報が取れません。

発生している問題・エラーメッセージ

500エラーが発生しています。エラーメッセージは[CloudGarage API リファレンス](https://api.cloudgarage.jp/doc/index.html#/Server API/getServerAutoBackupUsingGET)の通りですが、以下になります。

json

1{ 2 "fault":{ 3 "messages":[ 4 "failed to execute API" 5 ] 6 } 7}

該当のソースコード

php

1<?php 2$baseUrl = "https://api.cloudgarage.jp"; 3$config = json_decode(file_get_contents('./config.json'), true); 4/* 5config.jsonの内容は以下のような形 6{ 7 "clientId": "AAA", 8 "clientSecret": "BBB" 9} 10*/ 11 12// トークンの取得 13$token = getToken($baseUrl, $config); 14// インスタンスの取得 15$instances = getInstances($baseUrl, $token); 16// 最初のインスタンスの自動バックアップ情報を取得 17$backupInfo = getAutoBackupInfo($baseUrl, $token, $instances[0]['id']); 18 19var_dump($backupInfo); 20 21// GET処理を行う関数 22function get($url, $token, $key) { 23 $options = array ( 24 'http' => array ( 25 'header' => implode("\r\n", array( 26 'Content-type: application/json', 27 "X-Auth-Token: $token" 28 )) 29 ) 30 ); 31 $contents = file_get_contents($url, false, stream_context_create($options)); 32 return json_decode($contents, true)[$key]; 33} 34 35// 自動バックアップ情報を取得する 36function getAutoBackupInfo($baseUrl, $token, $id) { 37 $url = "$baseUrl/servers/$id/autoBackup"; 38 // ↓これが500エラー 39 return get($url, $token, 'autoBackup'); 40} 41 42// インスタンス情報を取得する 43function getInstances($baseUrl, $token) { 44 $url = "$baseUrl/servers"; 45 return get($url, $token, 'servers'); 46} 47 48// トークンを取得する 49function getToken($baseUrl, $config) { 50 $url = "$baseUrl/tokens"; 51 $options = array ( 52 'http' => array ( 53 'method' => 'POST', 54 'header' => 'Content-type: application/json', 55 'content' => json_encode( 56 array( 57 'client_id' => $config['clientId'], 58 'client_secret' => $config['clientSecret'] 59 ) 60 ) 61 ) 62 ); 63 $contents = file_get_contents($url, false, stream_context_create($options)); 64 return json_decode($contents, true)['token']['id']; 65} 66?>

試したこと

GET で /servers/{resource_id}/autoBackup を実行しました。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

CHERRY

2018/12/17 06:11

500エラーが出ているということは、PHPの実行中にエラーが発生しています。 Webサーバーのエラーログ等を確認して、どのようなPHPのエラーが発生しているか確認してください。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問