أحداث Open Graph في Android
باستخدام Open Graph، يمكن للأشخاص مشاركة الأحداث من تطبيقك إلى فيسبوك من خلال واجهة API منسقة ومحددة النوع بدقة.
عندما يتفاعل الأشخاص مع هذه الأحداث، يمكنهم الانتقال إلى تطبيقك أو إلى صفحة متجر التطبيقات لتطبيقك إذا كان غير مثبت لديهم. وهذا من شأنه أن يعزز التفاعل والتوزيع في تطبيقك.
هناك طريقتان لنشر حدث Open Graph:
- استخدام مربع الحوار مشاركة
- استخدام واجهة مخصصة خاصة
المتطلبات الأساسية
حتى يتمكن تطبيقك من نشر أحداث Open Graph، ستحتاج إلى ما يلي:
- الحصول على معرف تطبيق فيسبوك وتكوينه بشكل صحيح وربطه بتطبيق Android الخاص بك
- إضافة Facebook SDK لنظام Android إلى مشروعك
- إضافة معرف فيسبوك واسم العرض ومخطط عنوان url إلى ملف
manifest.htmlالخاص بتطبيقك
لمزيد من المعلومات حول بيئات التطوير ومعرفات التطبيقات، راجع بدء استخدام Android SDK.
إنشاء أحداث Open Graph
تتألف أحداث Open Graph من أفعال أو إجراءات وأسماء والمعروفة باسم كائنات. لإنشاء حدث، يجب تحديد إجراء وكائن لمحتوى تطبيقك.

يمكن أن يكون الإجراء والكائن من بين الإجراءات والكائنات المتنوعة سابقة الإعداد التي يوفرها فيسبوك، أو للحصول على المزيد من حالات الاستخدام المتقدمة، يمكن تحديدهما على نحو خاص.
الإجراءات
راجع استخدام الإجراءات للحصول على قائمة بالإجراءات المتاحة لك وتعرف على طريقة نشرها.
الكائنات
يتم تحديد الكائنات عن طريق إضافة ترميز بعلامات Open Graph في صفحة الويب التي تستضيف المحتوى. يمكن التعرف على جميع عروض فيسبوك الخاصة بالكائنات المحدد مسبقًا في قسم مرجع Open Graph.
مراجعة التطبيق
حتى تتمكن من نشر الأحداث بالنيابة عن الأشخاص، ستحتاج إلى تقديمها للمراجعة. وحتى يتسنى تقديمها، يجب أولاً نشر حدث اختباري.
النشر باستخدام مربع الحوار مشاركة
يتيح مربع الحوار مشاركة للأشخاص إمكانية نشر الأحداث من تطبيقك دون الحاجة إلى تسجيل دخول فيسبوك أو الحصول على إذن publish_actions.
وللقيام بذلك، يستخدم مربع الحوار مشاركة التبديل السريع بين التطبيقات للوصول إلى تطبيق فيسبوك لنظام Android الأصلي المثبت على الجهاز. وبمجرد نشر التطبيق، يعود عنصر التحكم إلى تطبيقك.
وفيما يلي نموذج لحدث يتناول "قراءة أحد الكتب":
قم بإنشاء كائن بنوع الكائن books.book، ثم قم بتعيين الخصائص في هذا الكائن.
// Create an object
ShareOpenGraphObject object = new ShareOpenGraphObject.Builder()
.putString("og:type", "books.book")
.putString("og:title", "A Game of Thrones")
.putString("og:description", "In the frozen wastes to the north of Winterfell, sinister and supernatural forces are mustering.")
.putString("books:isbn", "0-553-57340-3")
.build();قم بعد ذلك بإنشاء إجراء وربط الكائن بالإجراء.
// Create an action
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
.setActionType("books.reads")
.putObject("book", object)
.build();وأخيرًا، قم بإنشاء نموذج محتوى للتعبير عن حدث Open Graph.
// Create the content
ShareOpenGraphContent content = new ShareOpenGraphContent.Builder()
.setPreviewPropertyName("book")
.setAction(action)
.build();يجب أن تكون جميع أنواع الإجراءات والكائنات في الرمز البرمجي بأحرف صغيرة. وتتطلب جميع أسماء الخصائص مساحات أسماء.
إظهار مربع الحوار مشاركة
يمكن عرض مربع الحوار مشاركة باستخدام طريقة show في ShareDialog.
ShareDialog.show(activityOrFragment, content);
أدوات المشاركة البديلة المضمنة
في الإصدارات السابقة من SDK لنظام التشغيل Android، كان يجب أن يتحقق التطبيق من وجود تطبيق فيسبوك أصلي مثبت حتى يتمكن من فتح مربع الحوار مشاركة. إذا لم يكن التطبيق مثبتًا، يجب أن تقوم بإدخال الرمز البرمجي لاستدعاء مربع حوار احتياطي.
أما الآن فيتم من خلال SDK التحقق تلقائيًا من وجود تطبيق فيسبوك أصلي. وفي حالة عدم تثبيته، يتم تشغيل مربع الحوار مشاركة على الويب كبديل.
إضافة صور
دائمًا ما تتوفر للتطبيقات إمكانية إرفاق صور يمكن الوصول إليها عبر الويب باستخدام عناوين URL. يوضح هذا القسم كيفية إرفاق الصور من الجهاز. حتى يتسنى لك إرفاق الصور على الأجهزة، يجب أن يتم من خلال التطبيقات تكوين ContentProvider من SDK في AndroidManifest.xml. تذكر استعاضة {Facebook-app-id} في جزء XML أدناه:
<provider android:authorities="com.facebook.app.FacebookContentProvider{Facebook-app-id}"
android:name="com.facebook.FacebookContentProvider"
android:exported="true" />إرفاق الصور بالإجراءات
حتى يمكن إرفاق صور أحد الكتب بإجراء books.reads، يجب أن يقوم التطبيق بتحميل الصور بتنسيق Bitmap وإدخالها في مربع الحوار مشاركة عند فتحه. مثال:
SharePhoto photo = new SharePhoto.Builder()
.setBitmap(bitmap)
.setUserGenerated(true)
.build();
// Create an action
ShareOpenGraphAction action = new ShareOpenGraphAction.Builder()
.setActionType("books.reads")
.putObject("book", object)
.putPhoto("image", photo)
.build();يعرض مربع الحوار مشاركة معاينة للحدث ويستخدم صور Bitmap المدخلة أعلاه في معاينة الحدث بدلاً من صورة المنتج.
وفي حالة التقاط الأشخاص للصور بواسطة الكاميرا، يمكن أن تتم مطالبتهم عبر التطبيق بتمكين الخيار User Generated Photos أسفل نوع الإجراء في لوحة معلومات التطبيق.
وبتعيين هذه الإشارة إلى القيمة true، يتم عرض الحدث باعتباره مشاركة صور مقصودة على آخر الأخبار واليوميات. وفي حالة تعيين هذه الإشارة إلى القيمة false، يتم عرض حدث Open Graph الافتراضي بصورة صغيرة في آخر الأخبار واليوميات.
إمكانات إضافية
تأكد من استخدام هذه الإمكانات بطريقة تتوافق مع إرشادات التقديم.

يمكن الإشارة إلى أماكن وأشخاص مثل:
// Tag one or multiple people using their ids List peopleIds = ...; builder.setPeopleIds(peopleIds); // Tag a place using the place's id builder.setPlaceIds(placeId);
موضوعات متقدمة
استكشاف الأخطاء وإصلاحها:
اختبار مربع الحوار مشاركة في محاكي Android
نعم - يتم تضمين ملف .apk لتطبيق فيسبوك في حزمة تنزيل SDK. ولتثبيته يجب تشغيل:
~~~ $> adb install ~/facebook-android-sdk-3.5/bin/FBAndroid-{version}.apk
#### Share Dialog Fails Attaching Images {#troubleshooting_images}
If you're marking images as `user_generated`, make sure:
+ make sure images are at least 480 pixels in both dimensions
+ images from he app are loaded from the `drawable/` directory. Loading them from the resolution-specific sub-directories can cause Android to downsize them below the 480x480 minimum size.
### Custom Interface {#custom}
To use your own interface for sharing, you need to:
* Build a custom interface that posts to the Graph API endpoint `/me/feed`
* Add [Facebook Login](/docs/facebook-login/android/) to your app
* Request [`publish_actions` permission](/docs/facebook-login/permissions/#reference-publish_actions)
Here's the Graph API call your app makes to posting a link to Facebook:ShareApi.share(activity, content, null); ~~~
عند تشغيل هذا الرمز البرمجي في تطبيقك، يمكن مشاهدة الكائن الذي ينتج باستخدام متصفح الكائنات.
تذكر أن الشخص الذي قام بإنشاء الكائن هو مالكه، وحتى تتمكن رؤية الكائن، عليك اختيار اسم الشخص في حقل "مالك الكائن" في القائمة العلوية:
