0

除了位置,其他一切都很好。实际的城市/州没有遇到。而是显示单词 Array。我在数据库中的字段类型是文本,但我已经通过 mysql 尝试了每种字段类型。HTML 文件是 JSON,涉及字段名称。我对此很陌生,因此不胜感激。

这是我的 php 文件:

    <? ob_start(); ?>
 <?php
            define('FACEBOOK_APP_ID', '');
            define('FACEBOOK_SECRET', '');

            // No need to change function body
            function parse_signed_request($signed_request, $secret) {
                list($encoded_sig, $payload) = explode('.', $signed_request, 2);

                // decode the data
                $sig = base64_url_decode($encoded_sig);
                $data = json_decode(base64_url_decode($payload), true);

                if (strtoupper($data['algorithm']) !== 'HMAC-SHA256') {
                    error_log('Unknown algorithm. Expected HMAC-SHA256');
                    return null;
                }

                // check sig
                $expected_sig = hash_hmac('sha256', $payload, $secret, $raw = true);
                if ($sig !== $expected_sig) {
                    error_log('Bad Signed JSON signature!');
                    return null;
                }

                return $data;
            }

            function base64_url_decode($input) {
                return base64_decode(strtr($input, '-_', '+/'));
            }

            if ($_REQUEST) {
                $response = parse_signed_request($_REQUEST['signed_request'],
                                FACEBOOK_SECRET);
/*
                echo "<pre>";
                print_r($response);
                echo "</pre>"; // Uncomment this for printing the response Array
                */

                $name = $response["registration"]["name"];
                $email = $response["registration"]["email"];
                $gender = $response["registration"]["gender"];
                $prosecutor = $response["registration"]["prosecutor"];
                $location = $response["registration"]["location"];

                // Connecting to Database
                $con = mysql_connect("my_hosting_site","Database","password");
                if (!$response)
                  {
                  die('Could not connect: ' . mysql_error());
                  }

                mysql_select_db("Database", $con);

                mysql_query("INSERT INTO my_table (name, email, gender, prosecutor, location)
                VALUES ('$name', '$email', '$gender', '$prosecutor', '$location')");

                mysql_close($con);

            }
            $URL="https://www.facebook.com";

            header ("Location: $URL");
                    ?>
<? ob_flush(); ?>
4

1 回答 1

0

Facebook

基本上,它是一个数组。

[location] => Array
                (
                    [name] => Delhi, India
                    [id] => 1.1604xxxxxx286E+14
                )

使用它来获取存储在数据库中的位置,就像我在下面写的:

$location = $response["registration"]["location"]["name"];
于 2013-07-02T13:54:33.503 回答