yoshi5810
@yoshi5810

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

Instagramのwebページへの埋込のエラーについて

解決したいこと

インスタグラムを埋め込み

現在、webページにInstagramを埋め込みたいのですが、うまく行きません。
Instagramは「Instagram Graph API」を用いてPHPまで取得しています。
「index.php」に取得したソースを入力してテストサーバーにアップしたのですが、エラー表示になってしまいました。
原因を調べてみたのですが、よくわかりませんでした。
どなたか原因がわかる方いらっしゃらないでしょうか?

ファイル構成は

├ css
│ └ style.css
├ js
│ └ script.js
├ index.php
└ instagram.php

になっています。


Warning
: file_get_contents(https://graph.facebook.com/v6.0/108201405608464?fields=name%2Cmedia.limit(3)%7Bcaption%2Cmedia_url%2Cthumbnail_url%2Cpermalink%7D&access_token=EAACLPV0TVWMBAIFzJZAGi64JigZAFp0w6LzHBMMUjjun2M8t4HeOBkHZA4gZAv9lttP8fQk4DfR2Ab4SCWApkulU2IKXXLC2IVssudwgLzAIaYjU4GyfhZB85kNPCxbKwu8JaZAdMoZA2hX4efODLgxoBIZAvWUseVBj6k4NVZB69hFGYTYGfHb8l): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in


NameError (uninitialized constant World)


### 該当するソースコード
Warning
: file_get_contents(https://graph.facebook.com/v6.0/108201405608464?fields=name%2Cmedia.limit(3)%7Bcaption%2Cmedia_url%2Cthumbnail_url%2Cpermalink%7D&access_token=EAACLPV0TVWMBAIFzJZAGi64JigZAFp0w6LzHBMMUjjun2M8t4HeOBkHZA4gZAv9lttP8fQk4DfR2Ab4SCWApkulU2IKXXLC2IVssudwgLzAIaYjU4GyfhZB85kNPCxbKwu8JaZAdMoZA2hX4efODLgxoBIZAvWUseVBj6k4NVZB69hFGYTYGfHb8l): failed to open stream: HTTP request failed! HTTP/1.1 400 Bad Request in

### 該当のソースコード

[index.php]

<!DOCTYPE html>
<html lang="ja">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>test</title>
    <link rel="stylesheet" href="css/style.css">
</head>

<body>

    <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
    <script src="js/script.js"></script>

    <h1>タイトル</h1>
    <?php include('./instagram.php'); ?>

    <p>テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト</p>


</body>

</html>


[instagram.php]

<ul class="insta_list">
    <?php
    $insta_media_limit = '3';
    $insta_business_id = '【InstagramビジネスアカウントID】';
    $insta_access_token = '【アクセストークン】';

    $json = file_get_contents("https://graph.facebook.com/v6.0/{$insta_business_id}?fields=name%2Cmedia.limit({$insta_media_limit})%7Bcaption%2Cmedia_url%2Cthumbnail_url%2Cpermalink%7D&access_token={$insta_access_token}");

    $json = mb_convert_encoding($json, 'UTF8', 'ASCII,JIS,UTF-8,EUC-JP,SJIS-WIN');
    $obj = json_decode($json, true);

    $insta = [];

    foreach ($obj['media']['data'] as $k => $v) {
        if ($v['thumbnail_url']) {
            $data = [
                'img' => $v['thumbnail_url'],
                'caption' => $v['caption'],
                'link' => $v['permalink'],
            ];
        } else {
            $data = [
                'img' => $v['media_url'],
                'caption' => $v['caption'],
                'link' => $v['permalink'],
            ];
        }
        $insta[] = $data;
    }
    foreach ($insta as $k => $v) {
        echo '<li><a href="' . $v['link'] . '"><img src="' . $v['img'] . '"></a></li>';
    }
    ?>
</ul>
<div class="insta_btn"><a href="https://www.instagram.com/【ユーザーネーム】/">view more</a></div>

例)

```ruby
def greet
  puts Hello World
end

自分で試したこと

作業する際に参考にしたサイトです。
サンプルコードなどを利用しています。

エラーに関してのサイトは見つけられていません。

0

1Answer

とくに知見等は無いですが、エラーから読み取った内容を…

Warning
: file_get_contents(...URL省略...)
: failed to open stream
: HTTP request failed! HTTP/1.1 400 Bad Request in

HTTPレスポンスが400(Bad Request)なので、
渡している情報が正しくないということですかね

URLにアクセスした結果
{
   "error": {
      "message": "(#100) Tried accessing nonexisting field (media) on node type (Page)",
      "type": "OAuthException",
      "code": 100,
      "fbtrace_id": "AIKpb7lnogcFSvyHIUvLDSB"
   }
}

上記の内容でググったら、参考になりそうなページがありましたので、貼っておきます。

1Like

Comments

  1. @yoshi5810

    Questioner

    アドバイスありがとうございます。
    渡している情報が正しくないということは、何か設定を間違えているということなのでしょうか。
    もう一度見直してみたいと思います。

    教えていただいたページもありがとうございます。

Your answer might help someone💌