GrapesAPI サンプルコード

以下の手順で、GrapesAvatorAPIを利用し、PHPでのファイルアップロードアプリを作成し、APIキーをバックエンドで管理しつつ、ユーザーに説明付きで出力を表示します。

1. フロントエンド (HTMLフォーム)

この部分はシンプルなファイルアップロードフォームで、APIキーの入力は不要です。

<!DOCTYPE html>
<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>ファイルアップロード</title>
</head>
<body>
    <h1>ファイルをアップロード</h1>
    <form action="upload.php" method="POST" enctype="multipart/form-data">
        <label for="file">アップロードするファイルを選択してください:</label>
        <input type="file" name="file" id="file" required><br><br>
        <button type="submit">アップロード</button>
    </form>
</body>
</html>

2. バックエンド (PHPでファイルアップロード)

upload.phpで、APIキーをバックエンド側に保存し、ファイルをアップロードした後に結果を説明付きで出力します。アップロードされたファイルのURLも出力します。

<?php
// APIキーをサーバーサイドに保存(例:configファイルに保存、またはデータベース管理)
$apiKey = "your_api_key"; // APIキーをハードコードするか、安全な場所に保存

// ファイルが正しくアップロードされたか確認
if ($_FILES['file']['error'] !== UPLOAD_ERR_OK) {
    echo "<p>ファイルのアップロードに失敗しました。エラーコード: " . $_FILES['file']['error'] . "</p>";
    exit;
}

// アップロードされたファイルを処理
$file = new CURLFile($_FILES['file']['tmp_name'], $_FILES['file']['type'], $_FILES['file']['name']);

// cURLを使用してAPIにリクエストを送信
$ch = curl_init('https://grapes-avatarapi.mixeder.net/upload');
$data = [
    'file' => $file,
    'apiKey' => $apiKey
];

// cURLオプションを設定
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// リクエストを実行してレスポンスを取得
$response = curl_exec($ch);

// cURLセッションを閉じる
curl_close($ch);

// レスポンスをJSON形式でデコード
$result = json_decode($response, true);

// アップロード成功メッセージとファイルURLを出力
if (isset($result['fileName'])) {
    $folderName = "フォルダ名"; // 実際のフォルダ名に変更
    $fileName = $result['fileName'];
    $fileUrl = "https://grapes-avatarapi.mixeder.net/{$folderName}/{$fileName}";
    
    echo "<h2>アップロード結果</h2>";
    echo "<p>ファイルが正常にアップロードされました。以下のURLからファイルにアクセスできます。</p>";
    echo "<p><strong>アップロードされたファイルのURL:</strong> <a href='{$fileUrl}'>{$fileUrl}</a></p>";
    echo "<p>ファイル名: {$fileName}</p>";
} else {
    echo "<p>アップロードに失敗しました。レスポンス:</p>";
    echo "<pre>{$response}</pre>";
}
?>

3. 説明付き出力

アップロードが成功した場合、以下のように説明とURLが表示されます:

アップロード結果
ファイルが正常にアップロードされました。以下のURLからファイルにアクセスできます。
アップロードされたファイルのURL: https://grapes-avatarapi.mixeder.net/フォルダ名/68fea2b2d25d1100.png
ファイル名: 68fea2b2d25d1100.png

4. セキュリティ対策

  • APIキーの保護: APIキーはサーバー側でハードコードするか、設定ファイルや環境変数で管理して、外部に漏れないようにします。

  • ファイルバリデーション: 不正なファイルやウイルスのアップロードを防ぐために、ファイル形式やサイズのチェックを行う必要があります。

これで、PHPを使ってAPIキーを安全に管理しつつ、ファイルアップロードを行い、説明付きで結果を表示するアプリケーションが完成します。

最終更新