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

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

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

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

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

API

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

Q&A

解決済

1回答

532閲覧

phpでgeniusAPIを利用したい

AkasataNana

総合スコア1

PHP

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

composer

Composerとは、PHP5.3.2以上で使用可能なパッケージ管理ツールです。指定ディレクトリ内だけでパッケージ管理します。

API

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

0グッド

0クリップ

投稿2022/08/16 18:17

編集2022/08/16 21:26

前提

php,API共に知見のない初学者のものです.
phpでgeniusAPIを使用したいと考えています.
実行時に以下のようなエラーが出ており,改善方法がわからずご質問させて頂いている次第です.

実行時エラー

PHP Warning: require_once(/vendor/autoload.php): Failed to open stream: No such file or directory in /Applications/MAMP/htdocs/karakan/index.php on line 12 PHP Fatal error: Uncaught Error: Failed opening required '/vendor/autoload.php' (include_path='.:/opt/homebrew/Cellar/php/8.1.9/share/php/pear') in /Applications/MAMP/htdocs/karakan/index.php:12 Stack trace: #0 {main} thrown in /Applications/MAMP/htdocs/karakan/index.php on line 12

実現したいこと

  • geniusAPIから情報を取得する

試したこと

  1. https://genius.com/developers にてアプリの登録を行い,clientId, clientSecret, accessTokenを入手

  2. composerをインストール

  3. このパッケージを自分のプロジェクトのディレクトリにダウンロード

  4. index.phpを記述(ほとんどがパッケージのReadmeに記載されていた例のコピペです)

アクセストークンの部分は1.で取得した実際のアクセストークンの値を文字列で直接記載しています.

php

1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="UTF-8"> 6 <!--Geniusのアノテーション--> 7 <script src="https://genius.codes"></script> 8</head> 9 10<body> 11 <?php 12 require_once('/vendor/autoload.php'); 13 14 $authentication = new \Http\Message\Authentication\Bearer('ここにアクセストークン'); 15 16 $genius = new \Genius\Genius($authentication); 17 $upvoteAnnotation = $genius->getAnnotationsResource()->get(11852248); 18 19 //一旦値が取得できているか確認 20 echo "hoge"; 21 22 var_dump($authentication); 23 var_dump($genius); 24 var_dump($upvoteAnnotation); 25 26 echo "fuga"; 27 ?> 28 29</body> 30</html>

ディレクトリ構成

. ├── composer.json ├── composer.lock ├── index.php └── vendor ├── autoload.php

実行結果

何も表示されず,上記のエラーコードがコンソールに表示されます.

ご質問

このエラーを解消し,GeniusAPIを利用するにはどうすればよいでしょうか?
エラーメッセージで検索すると,多くの場合composerのインストールやアップデートで解決しているようですが,自分の場合「Nothing to install, update or remove」と表示され,解決できませんでした.
恐らく基本的なことがわかっておらず,拙い質問になってしまっていると思いますが,ご回答頂けると嬉しいです.

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

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

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

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

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

guest

回答1

0

ベストアンサー

Failed to open stream: No such file or directory in
Google翻訳:ストリームを開くことができませんでした: そのようなファイルまたはディレクトリはありません

あくまでautoload.phpが指定した先にないだけです。
APIどころかcomposer自体の利用ができていません。

どのような構成になっているのか提示情報からは分かりませんが、マジック定数__DIR__など利用するとパスの指定はしやすくなると思います。
(あくまで個人的には。「composerインストールした場所を正確に指定すること」が本質で、パスの指定方法だけの話なので手段は幾らでもあります)

投稿2022/08/16 19:55

m.ts10806

総合スコア80842

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

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

AkasataNana

2022/08/16 21:34

ご回答ありがとうございます! ディレクトリ構成を追記しました. すみません,知識不足で完全に理解できていないのですが,「require_once('/vendor/autoload.php');」の部分のパスの指定方法が間違っている,という認識で合っていますでしょうか.
m.ts10806

2022/08/16 23:54

/ から始めるとそのサーバー自体のトップからのパスになります。
m.ts10806

2022/08/16 23:55

つまり現状だと Applicationsディレクトリの同列にあるvendorを指定しています。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問