2012-01-10 37 views
5

Tôi đang cố gắng để có được danh sách tất cả người dùng Google Apps của miền trên trang web PHP công khai (không có khách truy cập trang web cần phải đăng nhập hoặc làm bất kỳ điều gì). Tôi có một sự hiểu biết cơ bản về những gì cần phải xảy ra nhưng không thể hoàn toàn mảnh ghép tất cả lại với nhau. Nó không thể cứng như tôi có thể ... phải không?Liệt kê tất cả Tiểu sử trên Google Apps trên Trang web PHP

Authentication and Authorization: Tôi chắc rằng nó cần phải sử dụng OAuth 2.0 ... nhưng không chắc chắn liệu nó cần 2 chân hoặc 3 chân. Tôi có một phần khác của trang web làm việc với ClientLogin nhưng điều đó sẽ không kéo trong hồ sơ Google Apps, chỉ tên và họ của người dùng (tôi cần các trường hồ sơ khác). Tôi đã thiết lập quyền truy cập API trong tài khoản và có mặt tất cả mọi thứ được thiết lập (tôi tin).

Tôi đã tìm thấy trang này, trong đó cho thấy cách xây dựng một yêu cầu URL để nhận tất cả Hồ sơ (bằng mọi ngôn ngữ ngoại trừ PHP tất nhiên) nhưng không hiểu cách thực hiện điều này. http://code.google.com/googleapps/domain/profiles/developers_guide.html

Tôi cũng đã thử ví dụ này nhưng nó chỉ cung cấp cho tôi 401 sau khi tôi nhập thông tin đăng nhập. http://gdatatips.blogspot.com/2008/11/2-legged-oauth-in-php.html

Tôi cũng không biết cần có khung công tác hoặc bao gồm nào để thực hiện việc này. Tôi đã thử zend, OAuth.php và một loạt các bootstraps khác ... nhưng tiếp tục bị mất như những gì từng đang làm.

Nếu ai đó có thể giúp tôi bằng cách phác thảo:

  1. Những tập tin/khuôn khổ tôi cần phải tải lên và bao gồm như một bootstrap
  2. gì biến trong các tập tin tôi cần phải cập nhật với các thông tin Google
  3. Cách tôi tích hợp yêu cầu "Truy xuất tất cả tiểu sử trên Google" trong Hồ sơ trên Google với số điện thoại

An ELI5 (giải thích như tôi 5) tổng quan sẽ là rất được đánh giá cao ... Tôi xin lỗi vì sự thiếu năng lực rõ ràng của tôi, nhưng tôi đã đọc các bài báo trong gần một tuần và chưa nhận được bất kỳ đâu.

Cảm ơn bạn trước vì đã được trợ giúp.

+0

Trong quy trình OAuth, bạn sẽ cần chuyển hướng người dùng đến trang google để họ cấp cho bạn quyền thích hợp. Nhưng bạn không muốn yêu cầu khách truy cập đăng nhập bằng bất kỳ cách nào ?! vui lòng giải thích – ori

+0

Đúng, tôi muốn người dùng truy cập trang và xem dữ liệu (mà không bị chuyển hướng) ... xác thực sẽ diễn ra sau hậu trường. Nếu tên miền là của tôi, tôi có nên hiển thị thông tin trên trang web của mình mà không yêu cầu người dùng trang web đăng nhập không? – RANGER

Trả lời

6

Câu hỏi hay.

Bạn sẽ cần phải thực hiện quá trình Google OAuth 2.0 vì nó được mô tả here (thử nghiệm?), Bởi vì một người nào đó (bạn) sẽ cần phải cung cấp cho ứng dụng của bạn các điều khoản ban đầu để truy cập Google Apps API. Các bước như sau:

  • đăng ký tên miền của bạn với google (không nhớ link)
  • Redirect/gửi trình duyệt để một địa chỉ xác thực: https://accounts.google.com/o/oauth2/auth, với params yêu cầu thích hợp (xem liên kết đầu tiên).Bạn sẽ cần access_type=offline, phạm vi của bạn sẽ là https://apps-apis.google.com/a/feeds/user/
  • Nhận mã trở lại, sau đó đổi lấy một refresh_token, một access_token, và một giá trị xác định khi access_token sẽ hết hạn. Lưu trữ chúng trong cơ sở dữ liệu
  • Bất cứ khi nào bạn cần thực hiện cuộc gọi API, hãy kiểm tra xem access_token của bạn đã hết hạn hay chưa và làm mới khi cần thiết, đó là những gì hàm refresh_token. Hàm refresh_token hợp lệ miễn là bạn không thu hồi quyền truy cập bạn đã cung cấp cho ứng dụng.

OAuth Playground giúp ích rất nhiều. Chúc may mắn.

Các vấn đề liên quan