質問

投稿者:CW1351
登録日:2024年5月31日(金)

box APIを使用したファイルダウンロードについて

作成したサイトにダウンロードボタンを設置し、ボタンをクリックしたらPHPを実行し、box(クラウドのファイルストレージ)から画像ファイルをダウンロードしてくるというプログラムを検証・調査しております。 PHP上でbox APIを呼び出しSDKを使用しないJWT認証でboxに接続しようとしております。(box側のAPIを使用する設定は完了しております。) 問題点・不明点は下記の3点となっている状態です。 ①config.json(box側で作成した情報が記載された情報ファイル)を読み込むのにfile_get_contentsを使用するのですが、関数が使えません。 代替手段はあるのでしょうか? ②秘密キーの複合にopenssl_pkey_get_privateを使用する必要があります。 こちらも関数が使えないため代替手段が必要となります。 ③useで「\Firebase\JWT\JWT」や「GuzzleHttp\Client」などのライブラリを使いたいのですが、設定方法などあるのでしょうか? 設定方法については下記のサイトを参照に調査をしている状態です。 https://ja.developer.box.com/guides/authentication/jwt/without-sdk/ お手数をおかけしますが、ご教授の程、よろしくお願いいたします。

更新日:2024年6月4日(火)

コメント

  • お世話になります。 ①SPIRALのPHP上ではファイルの取り扱いが仰るとおりfile_get_contentsが使えない為、直接文字列でJSONを記載し$configへ代入してください。 ②SPIRAL上では実現不可能な為、中間サーバの様なopenssl_pkey_get_privateが実行出来る環境もしくは別ライブラリを使える環境を間にかます必要があります。 ③「\Firebase\JWT\JWT」については②同様SPIRALのPHP上では実現不可能でしたので、別の環境をご用意頂く必要があります。「GuzzleHttp\Client」についてはcurlを用いれば実行可能だと思います。

    ①file_get_contentsを使わない方法
    $jsonString = '{
      "boxAppSettings": {
        "clientID": "abc...123",
        "clientSecret": "def...234",
        "appAuth": {
          "publicKeyID": "abcd1234",
          "privateKey": "-----BEGIN ENCRYPTED PRIVATE KEY-----\n....\n-----END ENCRYPTED PRIVATE KEY-----\n",
          "passphrase": "ghi...345"
        }
      },
      "enterpriseID": "1234567"
    }';
    
    $config = json_decode($jsonString); 
    • いいね
    2024年6月3日(月)
  • CW1351

    情報提供ありがとうございます。 別環境が必要なことが分かったため、方針等を決める指針となりました。 ご教示いただきありがとうございました。

    • いいね
    2024年6月4日(火)