استدعاء طلب حذف البيانات

يجب على التطبيقات التي يمكنها الوصول إلى بيانات المستخدم أن توفر طريقة للمستخدمين تمكّنهم من طلب حذف بياناتهم. يمكن لتطبيقك استيفاء هذا المتطلب بإحدى الطريقتين:

  • تنفيذ استدعاء طلب حذف البيانات.
  • توفير عنوان URL يتضمن تعليمات واضحة لمستخدمي التطبيق حول كيفية حذف بياناتهم من خلال أداة أو موقع ويب تابع لجهة خارجية. قد يكون موقع الويب التابع لجهة خارجية هو القسم ذا الصلة الوارد في سياسة خصوصية التطبيق.

يتم إجراء استدعاء حذف البيانات عندما يزيل مستخدم التطبيق تطبيقك أو يزيل إمكانية الوصول إلى البيانات التي تتم مشاركتها مع التطبيق، مثل عنوان البريد الإلكتروني، في إعدادات حساب فيسبوك.

يعمل ذلك على إنشاء طلب POST باستخدام طلب موقّع يتم إرساله إلى تطبيقك. ويحتوي الطلب الموقّع على معرف على مستوى التطبيق لتحديد هوية المستخدم الذي يقدم الطلب. وللاطّلاع على مثال حول كيفية تتبع الطلب وبنية الطلب الذي يتم تتبعه، راجع القسم الوارد فيما يلي.

استجابةً لطلب المستخدم، يتعين عليك الإقرار باستلام طلب حذف بيانات المستخدم من خلال الوسائل التقنية التي نوفرها وإرسال رابط ورقم تأكيد. ويجب أن يتيح الرابط ورقم التأكيد للمستخدم إمكانية الوصول إلى تفسير واضح ومقروء حول حالة الطلب الذي يقدمه، بما في ذلك التفسير المشروع في حالة أي رفض لطلب الحذف (حيث سيختلف السبب التشريعي استنادًا إلى الصلاحية والتفسير حسب كل حالة على حدة لسياستنا وعلاقتها بالأسباب التي يذكرها المستخدمون).

تطبيق الاستدعاء

لتتبع طلب والرد عليه، يتعين عليك تنفيذ استدعاء "طلب حذف البيانات". يجب أن يستخدم الاستدعاء الذي أرسلته بروتوكول HTTPS آمنًا كما يجب أن يكون مدرجًا في الحقل عنوان URL طلب حذف البيانات في الإعدادات في لوحة معلومات التطبيق.

يجب أن يعمل استدعاء طلب حذف البيانات الذي تنفذه على إجراء ما يلي:

  • بدء حذف أي بيانات قد جمعها تطبيقك من فيسبوك حول المستخدم.
  • إرجاع استجابة JSON تتضمن عنوان URL حيث يمكن للمستخدم التحقق من حالة طلب الحذف الذي أرسله ورمز تأكيد مكون من حروف وأرقام. وتكون استجابة JSON بالشكل التالي:
    { url: '<url>', confirmation_code: '<code>' }

قد يؤدي الفشل في الامتثال لهذه المتطلبات إلى حذف الاستدعاء الخاص بك أو تعطيل التطبيق الخاص بك.

يمكنك تنفيذ هذا الاستدعاء بأي لغة، ولكن الرمز البرمجي الوارد فيما يلي يعد مثالاً على الاستدعاء بلغة PHP.

<?php
header('Content-Type: application/json');

$signed_request = $_POST['signed_request'];
$data = parse_signed_request($signed_request);
$user_id = $data['user_id'];

// Start data deletion

$status_url = 'https://www.<your_website>.com/deletion?id=abc123'; // URL to track the deletion
$confirmation_code = 'abc123'; // unique code for the deletion request

$data = array(
  'url' => $status_url,
  'confirmation_code' => $confirmation_code
);
echo json_encode($data);

function parse_signed_request($signed_request) {
  list($encoded_sig, $payload) = explode('.', $signed_request, 2);

  $secret = "appsecret"; // Use your app secret here

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

  // confirm the signature
  $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, '-_', '+/'));
}
?>

ينتج عن ذلك كائن JSON يشبه هذا، حيث يكون user_id في الحقل ذي الصلة الخاص بالاستدعاء.

{
   "algorithm": "HMAC-SHA256",
   "expires": 1291840400,
   "issued_at": 1291836800,
   "user_id": "218471"
}

لمزيد من المعلومات حول الطلبات الموقّعة، راجع استخدام طلب موقّع ضمن موضوع تسجيل الدخول للألعاب على فيسبوك.

اختبار الاستدعاء

لاختبار الاستدعاء:

  1. سجّل الدخول إلى تطبيقك باستخدام تسجيل دخول فيسبوك.
  2. انتقل إلى علامة تبويب إعدادات التطبيقات ومواقع الويب في ملفك الشخصي على فيسبوك: https://www.facebook.com/settings?tab=applications
  3. قم بإزالة تطبيقك.
  4. انقر على الرابط عرض التطبيقات ومواقع الويب التي تمت إزالتها.
  5. في النافذة المنبثقة، انقر على الزر عرض على يسار التطبيق.
  6. في النافذة التي تظهر، انقر على إرسال الطلب لبدء الاستدعاء.