سؤال

لقد أنشأت مجالا واحدا في هذا المجال الذي أنشأته ما يقرب من 500 حساب مستخدم. أريد استرداد جميع المستخدمين في نطاقي. لذلك يمكنني استخدام الترميز التالي لاسترداد جميع المستخدمين في Domain.But في هذا الترميز الذي عرضته أولا 100 فقط المستخدمين. كما أنه عرض إجمالي إدخالات المستخدمين 100.I لا أعرف المشكلة في هذا الترميز.

import com.google.gdata.client.appsforyourdomain.UserService;
import com.google.gdata.data.appsforyourdomain.provisioning.UserEntry;
import com.google.gdata.data.appsforyourdomain.provisioning.UserFeed;
import com.google.gdata.util.AuthenticationException;
import com.google.gdata.util.ServiceException;

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;

/**
 * This is a test template
 */

  public class AppsProvisioning {

    public static void main(String[] args) {

      try {

        // Create a new Apps Provisioning service
        UserService myService = new UserService("My Application");
        myService.setUserCredentials(admin,password);

        // Get a list of all entries
        URL metafeedUrl = new URL("https://www.google.com/a/feeds/"+domain+"/user/2.0/");
        System.out.println("Getting user entries...\n");
        UserFeed resultFeed = myService.getFeed(metafeedUrl, UserFeed.class);
        List<UserEntry> entries = resultFeed.getEntries();
        for(int i=0; i<entries.size(); i++) {
          UserEntry entry = entries.get(i);
          System.out.println("\t" + entry.getTitle().getPlainText());
        }
        System.out.println("\nTotal Entries: "+entries.size());
      }
      catch(AuthenticationException e) {
        e.printStackTrace();
      }
      catch(MalformedURLException e) {
        e.printStackTrace();
      }
      catch(ServiceException e) {
        e.printStackTrace();
      }
      catch(IOException e) {
        e.printStackTrace();
      }
    }
  }

ما المشكلة في هذا الترميز؟

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

المحلول

يتم إرجاع قائمة المستخدمين في تغذية الذرة. هذه موجز مقسم مؤشر ترابط، بحد أقصى 100 إدخال لكل صفحة. إذا كانت هناك المزيد من الإدخالات في الخلاصة، فستكون هناك عنصر ترابط مع سمة REL = "التالي"، مشيرا في الصفحة التالية. تحتاج إلى الحفاظ على اتباع هذه الروابط حتى لا توجد صفحات "التالية".

يرى: http://code.google.com/apis/apps/gdata_provisioning_api_v2.0_Reference.html#results_pagination.

سيبدو الرمز شيئا مثل:

URL metafeedUrl = new URL("https://www.google.com/a/feeds/"+domain+"/user/2.0/");
System.out.println("Getting user entries...\n");
List<UserEntry> entries = new ArrayList<UserEntry>();

while (metafeedUrl != null) {
    // Fetch page
    System.out.println("Fetching page...\n");
    UserFeed resultFeed = myService.getFeed(metafeedUrl, UserFeed.class);
    entries.addAll(resultFeed.getEntries());

    // Check for next page
    Link nextLink = resultFeed.getNextLink();
    if (nextLink == null) {
        metafeedUrl = null;
    } else {
        metafeedUrl = nextLink.getHref();
    }
}

// Handle results
for(int i=0; i<entries.size(); i++) {
    UserEntry entry = entries.get(i);
    System.out.println("\t" + entry.getTitle().getPlainText());
}
System.out.println("\nTotal Entries: "+entries.size());
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top