CalendarList: list

عرض التقاويم في قائمة التقاويم لدى المستخدم. جرِّبه الآن أو شاهد مثالاً.

الطلب

طلب HTTP

GET https://www.googleapis.com/calendar/v3/users/me/calendarList

المَعلمات

اسم المعلَمة القيمة الوصف
مَعلمات طلب البحث الاختيارية
maxResults integer أقصى عدد للإدخالات التي يتم عرضها في صفحة نتائج واحدة. القيمة التلقائية هي 100 إدخال. لا يمكن أبدًا أن يتجاوز حجم الصفحة 250 إدخالاً. اختياريّ.
minAccessRole string الحد الأدنى لدور الوصول للمستخدم في الإدخالات المعروضة. اختياريّ. الخيار التلقائي هو عدم فرض قيود.

القيم المقبولة هي:
  • "freeBusyReader": يستطيع المستخدم قراءة معلومات الحالة متوفّر/مشغول.
  • "owner": يمكن للمستخدم قراءة الأحداث وقوائم التحكّم بالوصول وتعديلها.
  • "reader": يمكن للمستخدم قراءة الأحداث غير الخاصة.
  • "writer": يمكن للمستخدم قراءة الأحداث وتعديلها.
pageToken string رمز مميز يحدد صفحة النتائج المراد عرضها اختياريّ.
showDeleted boolean ما إذا كان سيتم تضمين إدخالات قائمة التقويم المحذوفة في النتيجة. اختياريّ. القيمة التلقائية هي False.
showHidden boolean تحديد ما إذا كان سيتم إظهار الإدخالات المخفية أم لا. اختياريّ. القيمة التلقائية هي False.
syncToken string تم الحصول على رمز مميّز من الحقل nextSyncToken في الصفحة الأخيرة من النتائج من طلب القائمة السابق. ويجعل نتيجة طلب القائمة هذا تحتوي فقط على الإدخالات التي تم تغييرها منذ ذلك الحين. إذا تم تغيير حقول للقراءة فقط مثل خصائص التقويم أو قوائم التحكم في الوصول، لن يتم عرض الإدخال. تم حذف جميع الإدخالات وإخفائها لأنّ طلب القائمة السابق سيكون دائمًا في مجموعة النتائج، ولا يُسمح بضبط showDeleted أو showHidden على "خطأ".
لضمان اتساق حالة العميل، لا يمكن تحديد مَعلمة طلب البحث minAccessRole مع nextSyncToken.
إذا انتهت صلاحية syncToken، سيستجيب الخادم برمز الاستجابة 410 GONE، ويجب على العميل محو مساحة التخزين وإجراء مزامنة كاملة بدون استخدام syncToken.
مزيد من المعلومات حول المزامنة التزايدية
اختيارية. الإعداد التلقائي هو عرض جميع الإدخالات.

التفويض

يتطلب هذا الطلب إذنًا باستخدام نطاق واحد على الأقل من النطاقات التالية:

النطاق
https://www.googleapis.com/auth/calendar.readonly
https://www.googleapis.com/auth/calendar

للحصول على مزيد من المعلومات، يُرجى الاطّلاع على صفحة المصادقة والتفويض.

نص الطلب

لا توفِّر نص طلب بهذه الطريقة.

الإجابة

في حال نجاحها، تعرض هذه الطريقة نص استجابة بالبنية التالية:

{
  "kind": "calendar#calendarList",
  "etag": etag,
  "nextPageToken": string,
  "nextSyncToken": string,
  "items": [
    calendarList Resource
  ]
}
اسم الموقع القيمة الوصف Notes
kind string نوع المجموعة ("calendar#calendarList").
etag etag علامة ETag الخاصة بالمجموعة
nextPageToken string الرمز المميّز المُستخدَم للوصول إلى الصفحة التالية من هذه النتيجة يتم الحذف إذا لم تتوفر نتائج أخرى، في هذه الحالة يتم تقديم nextSyncToken.
items[] list التقاويم المتوفّرة في قائمة تقاويم المستخدم.
nextSyncToken string يتم استخدام رمز مميز في وقت لاحق لاسترداد الإدخالات التي تغيرت منذ عرض هذه النتيجة فقط. يُحذف في حال توفُّر نتائج إضافية، وفي هذه الحالة يتم تقديم nextPageToken.

أمثلة

ملاحظة: إنّ الأمثلة المرتبطة بالرموز والمتوفرة لهذه الطريقة لا تمثّل كل لغات البرمجة المتوافقة (يُرجى مراجعة صفحة مكتبات البرامج للاطّلاع على قائمة باللغات المتوافقة).

Java

تستخدم مكتبة عميل Java.

import com.google.api.services.calendar.Calendar;
import com.google.api.services.calendar.model.CalendarList;
import com.google.api.services.calendar.model.CalendarListEntry;

// ...

// Initialize Calendar service with valid OAuth credentials
Calendar service = new Calendar.Builder(httpTransport, jsonFactory, credentials)
    .setApplicationName("applicationName").build();

// Iterate through entries in calendar list
String pageToken = null;
do {
  CalendarList calendarList = service.calendarList().list().setPageToken(pageToken).execute();
  List<CalendarListEntry> items = calendarList.getItems();

  for (CalendarListEntry calendarListEntry : items) {
    System.out.println(calendarListEntry.getSummary());
  }
  pageToken = calendarList.getNextPageToken();
} while (pageToken != null);

Python

تستخدم مكتبة برامج Python.

page_token = None
while True:
  calendar_list = service.calendarList().list(pageToken=page_token).execute()
  for calendar_list_entry in calendar_list['items']:
    print calendar_list_entry['summary']
  page_token = calendar_list.get('nextPageToken')
  if not page_token:
    break

PHP

لاستخدام مكتبة برامج PHP.

$calendarList = $service->calendarList->listCalendarList();

while(true) {
  foreach ($calendarList->getItems() as $calendarListEntry) {
    echo $calendarListEntry->getSummary();
  }
  $pageToken = $calendarList->getNextPageToken();
  if ($pageToken) {
    $optParams = array('pageToken' => $pageToken);
    $calendarList = $service->calendarList->listCalendarList($optParams);
  } else {
    break;
  }
}

Ruby

تستخدم مكتبة عميل Ruby.

page_token = nil
begin
  result = client.list_calendar_lists(page_token: page_token)
  result.items.each do |e|
    print e.summary + "\n"
  end
  if result.next_page_token != page_token
    page_token = result.next_page_token
  else
    page_token = nil
  end
end while !page_token.nil?

تجربة

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