1

Ok so I am using some code i found here: Read feed on a Facebook page without login in

code is as follows

proxy.php

<?php
// always add this header to ensure the JSON is output in the correct format
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Cache-Control: no-cache");
header("Pragma: no-cache");
header('Content-Type: application/json; charset=utf-8'); 

$graphUrl = $_POST[graphUrl];
if ($graphUrl == "") {
    $graphUrl = "https://graph.facebook.com/684985445000793/posts";
}

//App Info, needed for Auth
$app_id = "MY-APP-ID";
$app_secret = "MY-APP-SECRET";

//retrieve auth token
$authToken = fetchUrl("https://graph.facebook.com/oauth/access_token?type=client_cred&client_id={$app_id}&client_secret={$app_secret}");

//Echo back json to read client side.
echo fetchUrl("{$graphUrl}?fields=ratings%2Cposts.limit(10)&access_token={$authToken}");

function fetchUrl($url){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_TIMEOUT, 20);
    $retData = curl_exec($ch);
    curl_close($ch); 
    return $retData;
}
?>

index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>FB reader</title>
</head>
<body>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {

            var timeout = 5000,
                load_error;

            load_error = function (jqXHR, textStatus, errorThrown) {
                if (errorThrown === "timeout") {
                    alert('Server bussy');
                } else {
                    alert('error: 404', textStatus + ": " + errorThrown);
                }
            };      

            $(document).ready(function() {
                console.log('Loading from Facebook...\n');

                $.ajax({
                    type: 'POST',
                    url: 'proxy.php',
                    data: {graphUrl: 'https://graph.facebook.com/684985445000793/'}, 
                    timeout:  timeout,
                    error: load_error,
                    success: function (rv) {
                        var data = rv.data,
                            len = data.length,
                            i,
                            out = '';
                        for (i = 0; i < len; i += 1) {
                            if (data[i].description) {
                                out += data[i].description + '\n\n';
                            }
                        }
                        console.log(out);
                    }
                });

            });
        });
    </script>
</body>
</html>

My proplem is that

 type: 'POST',
                    url: 'proxy.php',
                    data: {graphUrl: 'https://graph.facebook.com/684985445000793/'}

does not seem to work as in my error log for my proxy.php I am being told:

PHP Notice: Use of undefined constant graphUrl - assumed 'graphUrl' in proxy.php on line 8

So I am assuming the the data: from my index.html is not being sent over.

Any help or suggestions why I am getting this error?

For what it matters I am on a shared host....

Community
  • 1
  • 1
  • Be very careful with this... you effectively have an open proxy that can be exploited by hackers for malicious purposes. They don't even necessarily have to target you... there are bots crawling servers all over the place, just looking for scripts like these. – Brad Feb 18 '17 at 04:20
  • I became aware of this afterwords and removed this code – Michael Dugas Feb 18 '17 at 04:22

1 Answers1

2

$graphUrl = $_POST[graphUrl]; should be $graphUrl = $_POST['graphUrl'];

LF00
  • 27,015
  • 29
  • 156
  • 295