facebook注册插件位置字段不写入mysql

时间:2013-06-03 13:17:04

标签: facebook-graph-api

除了位置,其他一切都很好。实际的城市/州没有遇到。而是显示单词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(); ?>

1 个答案:

答案 0 :(得分:0)

基本上,它是一个数组。

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

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

$location = $response["registration"]["location"]["name"];