كيفية الحصول على (والاستخدام) الأذونات الممتدة في Facebook مع Python/Django

StackOverflow https://stackoverflow.com/questions/1967438

سؤال

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

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

لقد قرأت الويكي لعدة أيام. الملاحظات على Pyfacebook ما لا يقل عن عام بعيد ، وقد وجهني الناس إلى Socialauth تطبيق Django الذي يبدو أنه قديم على قدم المساواة ويركز على استهداف المستخدمين بدلاً من صفحاتهم. لا يمكنني حتى القيام رقم 1 هناك ، دعنا على طول رقم 2 و 3.

إذا كان بإمكان شخص ما أن يوضح لي كيفية استخدام Django/Python لطلب/تلقي إذن للكتابة إلى دفق Facebook ، فستكون هذه بداية رائعة.

أي مساعدة سيكون موضع تقدير كبير.

هل كانت مفيدة؟

المحلول 2

بعد الكثير من العبث ، يبدو أنني حللت كل مشاكلي في Facebookland:

  1. تبين أن وجود مستخدم ينقر على زر لمنح الأذونات أمرًا سهلاً كما قال Caio Romão. رغم ذلك ، وجدت أن توجيههم إلى رابط تطبيق سطح المكتب على Facebook كان أسهل وأكثر قابلية للاعتماد عليه.
  2. باستخدام طريقة الارتباط هذه ، يتيح لك Facebook تحديد enable_profile_selector=1 والتي ستتأكد من أن قائمة الصفحات يتم إنشاؤها من خلالها يمكن للمستخدم تحديد الصفحات (إن وجدت) ستمنح هذه الأذونات.
  3. لهذا واحد ، رغم ذلك ، Facebook مكسور تمامًا. بينما في #2 يسمحون للمستخدم بتحديد صفحة لمنح أذونات ، لا يمرون هذه المعلومات على التطبيق إما عن طريق منشور أو في الرؤوس. إنه ليس هناك فقط. بدلاً من ذلك ، يجب عليك القيام بخدعة قبيحة مع FQL وبعض الأسئلة الإضافية للمستخدم لجعلها تعمل.

على اي حال، انا تفصيل كل شيء على مدونتي إذا كان أي شخص مهتمًا. شكرا لمساعدتك!

نصائح أخرى

هل نظرت إلى minifb؟ هُم صفحة أمثلة يظهر بشكل أساسي كل ما تحتاج إلى معرفته لطلب التفويض واستلام مفتاح جلسة. (أيضا ، صفحة Github لـ Pyfacebook يظهر أن المكتبة لا تزال على قيد الحياة)

لذلك ، لسيناريو الخاص بك ستحتاج:

  1. اطلب إذن "Stream_Publish". هناك بعض الطرق للقيام بذلك ، لكنني سأذهب بالفعل لأسهل: تقديم نموذج (لاحظ أنني لم أقم مطلقًا بتطبيق على Facebook ، فمن المحتمل أن أكون مخطئًا على افتراض أن هذا النهج هو الأسهل :-)
  2. استخدم تطبيقك بشكل طبيعي: اتصل بطرق API باستخدام user_id للمستخدم الذي أذن للتطبيق الخاص بك (سيتعين عليك تخزينه) وبما أنك مصرح لك ، فلا ينبغي أن تفشل.

لهذا ، في الأساس ، أضف هذا النموذج على القالب الخاص بك:

<form promptpermission="publish_stream">
<input type="submit" value="Allow Publish Stream">
</form>

مجد لمطوري Facebook ، بالمناسبة. وثائق رسمية لطيفة جدا.

تعديل: لا يُسمح لي بالتعليق بعد: إذا واجهت مشاكل الحصول على uid ، تحقق هذا السؤال والمراجع.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top