0

Facebookに正常にログインできるWebアプリを作成しています(PhonegapとPhonegap Facebookプラグインを使用しています)。次に、ログインしたユーザーの名前とIDを保存します。簡単なテストとして、次のコントローラーでIDを収集し、xcodeコンソールに表示してそこにあることを確認してから、以下のphpコードに送信して、mysqlテーブルに保存します。私はそれを機能させることができないようで、おそらく$ http.post内の{}のデータの形式だと思いますが、これを理解することは私の現在の知識を少し超えています。何か案は?

function FacebookCtrl($scope) {
    FB.api('/me', function(response) {
       var fbid=response.id;
       console.log('Testing, ' + fbid + '.');
       $http.post('http://somedomain.co.uk/php/users.php', {uid: fbid})
       console.log('Complete');
    });
}

受信側のphpコードは次のとおりです。

<?php
    $data = file_get_contents("php://input");
    $objData = json_decode($data);

    $uid = $objData->uid;

    try {
        include 'database.php';
        $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    $stmt = $conn->prepare('INSERT INTO Userdata (oauth_uid) VALUES (:userid)');
    $stmt->execute(array(
            ':userid' => $uid,
    ));
    } catch(PDOException $e) {
        echo 'ERROR: ' . $e->getMessage();
    }
?>

同じphpコードが私のコントローラーの別の1つで機能しますが、違いは、他のコントローラーがフォームから渡されたデータをキャプチャするため、http.postは次のようになります。

$http.post('http://somedomain.co.uk/php/submitdata.php', {Position1: $scope.position1}

そして、このデータをキャプチャするphpのコードは次のとおりです。

$Position1 = $objData->Position1->Name;

コードはすべて別のコントローラーで機能するため、問題は{}間で渡すデータのフォーマット方法にあると思いますか?

4

1 に答える 1

1

成功\エラーコールバックを定義してみてください

$http.post("http://somedomain.co.uk/php/users.php", {uid: fbid})
    .success(function(data, status, headers, config) {
        $scope.data = data;
    }).error(function(data, status, headers, config) {
        $scope.status = status;
    });

それでは何と言いますか?

于 2013-02-19T17:51:09.177 に答える