إصدار ‏‎Graph API‎‏

مواقع الصفحة

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

تتوفر قراءة عنصر الربط هذا لجميع التطبيقات. وتتوفر بعض أنواع عمليات النشر فقط لمجموعة محددة من المطوّرين.

عند استخدام عمليات النشر لواجهة API هذه، يرجى اتباع هذه الإرشادات:

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

القراءة

مستكشف Graph API
GET /v21.0/{page-id}/locations HTTP/1.1
Host: graph.facebook.com
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->get(
    '/{page-id}/locations',
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/locations",
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    null,
    HttpMethod.GET,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"GET"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

الأذونات

  • يلزم توفير أي رمز وصول صالح بغرض استرداد المواقع.

الحقول

مصفوفة من كائنات الصفحات ويمثل كل منها موقعًا فرديًا للنشاط التجاري.

النشر

يمكنك إضافة صفحة حالية مستندة إلى موقع إلى هذه القائمة من خلال النشر على عنصر الربط هذا:

POST /v21.0/{page-id}/locations HTTP/1.1
Host: graph.facebook.com

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/locations",
    "POST",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

الأذونات

  • يلزم توفير رمز وصول الصفحة لنشر المواقع الحالية على أية صفحة.
  • يلزم توفير رمز وصول الصفحة لإنشاء مواقع جديدة وإضافتها إلى أية صفحة. ولن يتمكّن سوى المطوّرين المحددين من الوصول إلى هذه الوظائف.

الحقول

الاسمالوصفالنوع

differently_open_offerings

من أجل استخدامه عند تعيين الحالة temporary_status إلى differently_open للإشارة إلى كيفية عمل النشاط التجاري بشكل مختلف عن المعتاد، مثل مطعم يقدم الوجبات الجاهزة. ويمكن أن تكون مفاتيح التعداد واحدة أو أكثر مما يلي: ONLINE_SERVICES أو DELIVERY أو PICKUP أو OTHER مع تعيين القيمة إلى true أو false. فعلى سبيل المثال، سيكون أحد المطاعم التي تقدم خدمة استلام الطعام، ولكن يوقف خدمة التوصيل مؤقتًا بالقيمة differently_open_offerings:{"DELIVERY":"false", "PICKUP":"true"}

object

hours

يمكن تحديد ساعات العمل لهذا الموقع.

object

{day}_{number}_{status}

يمكن تحديد نطاق فردي لساعات العمل خلال يوم واحد. ويمكن أن يحتوي كل يوم على نطاقي ساعات مختلفين. ويجب أن يتكون {day} من الأحرف الثلاثة الأولى لاسم يوم الأسبوع، ويجب أن يكون {number} بالقيمة 1 أو 2 للسماح باستخدام نطاقين مختلفين للساعات في كل يوم. ويجب أن تكون {status} بالقيمة open أو close لتحديد بداية النطاق الزمني أو نهايته. ومن أمثلة ذلك mon_1_open بالقيمة 17:00 وmon_1_close بالقيمة 21:15 ويمكن أن يمثل نطاقًا واحدًا لساعات العمل من الساعة 5 مساءً إلى 9:15 مساءً أيام الاثنين.

string

ignore_warnings

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

bool

is_franchise

هل هذا موقع امتياز؟

bool

country

اسم البلد. إذا لم يتم تضمين المعرف city_id، فسيكون مطلوبًا حينها.

string

city

اسم المدينة. إذا لم يتم تضمين المعرف city_id، فسيكون مطلوبًا حينها.

string

city_id

معرف المدينة. تمثل قيمة key لخيارات الاستهداف adcity. وإذا لم يتم تضمين ذلك، فيلزم حينها توفير city وcountry (state وzip مطلوبان أيضًا للمواقع في الولايات المتحدة الأمريكية).

int

latitude

خط العرض بالقيمة العشرية. ويلزم توفير ذلك لـ location.

string

location

يحدد ذلك موقع هذه الصفحة. يلزم توفير ذلك إذا لم يتم تحديد المعرف location_page_id. ويجب أن يتضمن القاموس عنوان street الرئيسي (عنوان الشارع). ويجب أن يتضمن أيضًا هذا المعرف city_id أو كل قيم city وstate وcountry (ولكن يظل الحقل state اختياريًا إذا لم يقع العنوان داخل الولايات المتحدة). كما يتوفر الحقل zip اختياريًا ما لم يكن العنوان داخل الولايات المتحدة. ويرجى الاطلاع لاحقًا على هذا المستند للحصول على معلومات حول إنشاء معرف مدينة.

object

longitude

خط الطول بالقيمة العشرية. يلزم توفير ذلك لـ location.

string

state

اسم الولاية (أو ما يقابلها محليًا).

string

street

عنوان الشارع. يلزم توفير ذلك لـ location.

string

zip

الرمز البريدي للموقع (أو ما يقابله محليًا).

string

location_page_id

معرف صفحة فيسبوك الذي ترغب في إضافته كموقع. وإذا لم يتم تضمين هذا الحقل، فيجب عليك تحديد الحقول location وplace_topics وphone بدلًا من ذلك لإنشاء صفحة موقع جديدة.

numeric string

main_page_id

معرف صفحة فيسبوك التي تمثل أصل جميع المواقع. يكون هذا الحقل مطلوبًا.

numeric string

permanently_closed

هل هذا الموقع مُغلق نهائيًا؟

bool

phone

رقم الهاتف لهذا الموقع. يلزم توفير ذلك إذا لم يتم تحديد المعرف location_page_id.

string

pickup_options

تتوفر قائمة بخيارات الاستلام المتوفرة في هذا الموقع.

enum[] {CURBSIDE, IN_STORE, OTHER}

place_topics

موضوعات الأماكن لهذا الموقع. يلزم توفير ذلك إذا لم يتم تحديد المعرف location_page_id.

int[]

store_number

معرف عشوائي يحدده المطوّر لهذا الموقع، ويُستخدم عادةً للربط مرة أخرى بقاعدة بيانات داخلية للمواقع. يكون هذا الحقل مطلوبًا.

int

temporary_status

يمكن الإشارة إلى كيفية عمل النشاط التجاري المطابق لأية صفحة بشكل مختلف عن المعتاد. وفي حالة التعيين إلى differently_open، استخدم differently_open_offerings لتعيين الحالة.

التعداد {differently_open, temporarily_closed, operating_as_usual, no_data}

الاستجابة

عند نجاح العملية، يتلقى تطبيقك ما يلي:

{
  "success": true
}

بخلاف ذلك، ستظهر رسالة الخطأ ذات الصلة.

الحذف

يمكنك إزالة صفحة موقع من قائمة المواقع الأصل عن طريق الحذف بعنصر الربط هذا:

DELETE /v21.0/{page-id}/locations HTTP/1.1
Host: graph.facebook.com

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->delete(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/locations",
    "DELETE",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.DELETE,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"DELETE"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

الأذونات

  • يلزم توفير رمز وصول الصفحة لإزالة المواقع من الصفحة الأصل.

الحقول

جميع الحقول مطلوبة.

الاسم الوصف النوع

main_page_id

معرف صفحة فيسبوك الرئيسية لهذا الموقع.

numeric string

store_number

معرف يحدده المطوّر لهذا الموقع.

numeric string

location_page_id

معرف يحدده Facebook لهذا الموقع.

numeric string

الاستجابة

إذا كانت ناجحة:

{
  "success": true
}

بخلاف ذلك، ستظهر رسالة الخطأ ذات الصلة.

التحديث

يتم دعم نقطة النهاية هذه لتجربة الصفحة الجديدة.

POST /v21.0/{page-id}/locations HTTP/1.1
Host: graph.facebook.com

main_page_id=%7Bpage-id%7D&store_number=12345&location_page_id=%7Bsubpage-id%7D
/* PHP SDK v5.0.0 */
/* make the API call */
try {
  // Returns a `Facebook\FacebookResponse` object
  $response = $fb->post(
    '/{page-id}/locations',
    array (
      'main_page_id' => '{page-id}',
      'store_number' => '12345',
      'location_page_id' => '{subpage-id}',
    ),
    '{access-token}'
  );
} catch(Facebook\Exceptions\FacebookResponseException $e) {
  echo 'Graph returned an error: ' . $e->getMessage();
  exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
  echo 'Facebook SDK returned an error: ' . $e->getMessage();
  exit;
}
$graphNode = $response->getGraphNode();
/* handle the result */
/* make the API call */
FB.api(
    "/{page-id}/locations",
    "POST",
    {
        "main_page_id": "{page-id}",
        "store_number": "12345",
        "location_page_id": "{subpage-id}"
    },
    function (response) {
      if (response && !response.error) {
        /* handle the result */
      }
    }
);
Bundle params = new Bundle();
params.putString("main_page_id", "{page-id}");
params.putString("store_number", "12345");
params.putString("location_page_id", "{subpage-id}");
/* make the API call */
new GraphRequest(
    AccessToken.getCurrentAccessToken(),
    "/{page-id}/locations",
    params,
    HttpMethod.POST,
    new GraphRequest.Callback() {
        public void onCompleted(GraphResponse response) {
            /* handle the result */
        }
    }
).executeAsync();
NSDictionary *params = @{
  @"main_page_id": @"{page-id}",
  @"store_number": @"12345",
  @"location_page_id": @"{subpage-id}",
};
/* make the API call */
FBSDKGraphRequest *request = [[FBSDKGraphRequest alloc]
                               initWithGraphPath:@"/{page-id}/locations"
                                      parameters:params
                                      HTTPMethod:@"POST"];
[request startWithCompletionHandler:^(FBSDKGraphRequestConnection *connection,
                                      id result,
                                      NSError *error) {
    // Handle the result
}];

الأذونات

  • يلزم توفير رمز وصول الصفحة لتحديث المواقع على الصفحة الأصل.

الحقول

لإجراء التحديث، يلزم تضمين أي من حقول النشر المطلوبة وأي من حقول النشر الأخرى التي تريد تغيير قيمتها.

الاستجابة

إذا كانت ناجحة:

{
  "success": true
}

بخلاف ذلك، ستظهر رسالة الخطأ ذات الصلة.