彼は私がデータベースから詳細を削除したいのFacebookから自分のアプリケーションを削除します。これを行う方法?
私はDeauthorize Callback URLを与えることができます。アプリケーションの一部を削除すると、このページにリダイレクトされます。しかし、wtはdbからデータを削除するコードでなければなりません?私は、リダイレクト時にアクセストークンの詳細を投稿することになるので、私はアクセストークンを拒否し、その行を削除することができます。
彼は私がデータベースから詳細を削除したいのFacebookから自分のアプリケーションを削除します。これを行う方法?
私はDeauthorize Callback URLを与えることができます。アプリケーションの一部を削除すると、このページにリダイレクトされます。しかし、wtはdbからデータを削除するコードでなければなりません?私は、リダイレクト時にアクセストークンの詳細を投稿することになるので、私はアクセストークンを拒否し、その行を削除することができます。
それは明確にauthentication documentに述べています:
アプリの認証解除
のアプリのユーザーが アプリのダッシュボードやブロックで ニュースフィードでアプリを、それを削除すると、あなたのアプリをデベロッパーアプリケーションの コールバックURLを指定して、 を通知することができます。 アプリを削除する際に、 パラメータsigned_requestを含む HTTP POSTリクエストを送信します。 には、あなたのアプリをただ削除したユーザー のユーザーID(UID)が含まれています。あなたは このリクエストでユーザーのアクセストークンを受信しませんし、すべての既存のユーザー アクセストークンは自動的に が期限切れになります。
だから、独自のdocuementにsigned_request
機能を使用して:
<?php
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, '-_', '+/'));
}
$result = parse_signed_request($_REQUEST['signed_request'],"APP_SECRET");
$myFile = "deauthorize.txt";
$fh = fopen($myFile, 'w') or die("can't open file");
fwrite($fh, $result["user_id"] . "\n");
fclose($fh);
?>
だから、すべてを行う必要が$result["user_id"]
クエリあなたのDBを取得したレコードを削除しています。
P.S:私はactive
と呼ばれる新しいフィールドを追加することをお勧めしますし、ちょうどすべて一緒にレコードを削除するのではなく、ユーザーを無効にします。
EDIT:
Facebookは許可を取り消すのURLにユーザーをリダイレクトされません!それだけで、それをpingます:
のFacebookのpingこのURLをユーザー は、このコードは動作していない
これはまさに必要なものです。APP_SECRETを実際のapp_secretに置き換えることを忘れないでください。 – testing123
あなたのアプリを認証解除したときに、それは、ユーザがデータだけが渡されたアプリを認証解除したときに呼び出されますが、機能が "1"(テストユーザーと自分のFBアカウントがアプリがライブのときにテストされます)
file_put_contents( "test.txt"、$ fbUserId。 "" print_r($ _REQUEST ['signed_request']) ));
test.txtファイル "1"
ここで質問を書くよりも時間がかかりません。 $ _REQUEST/$ _ GET/$ _ POSTの内容を電子メールで送信するページを作成します。コールバックURLを作成します。権限を与えてから、自分自身を認証解除します。電子メールをチェックすれば、利用可能なデータを正確に知ることができます。 –