2012-03-14 46 views
5

Tôi đã cố gắng để có được Google's Calendar API làm việc trong một ứng dụng web PHP, nhưng tôi đang gặp khó khăn khi được xác thực.Xác thực API Google cho máy chủ

Điều tôi muốn làm là cho phép người dùng tương tác với lịch của một tài khoản được máy chủ biết đến.

Mỗi loại kịch bản được đề cập trong "thỏa thuận người dùng" bao gồm biểu mẫu đăng nhập và người dùng cá nhân đăng nhập nhưng tôi muốn chính máy chủ xác thực trực tiếp và nhận mã thông báo truy cập cho chính nó.

Có một phần nào của OAuth hoặc một số cơ chế thay thế mà tôi có thể sử dụng để thực hiện việc này không?

Trả lời

3

Để thực hiện việc này, bạn phải thực hiện các bước để được sự đồng ý của người dùng và sau đó sao chép mã thông báo truy cập mà nó cung cấp cho bạn vào mã PHP.

Thủ tục thông thường cho OAuth là như thế này:

  1. Gửi người dùng đến trang xác thực.
  2. tài khoản trở lại với $ _GET [ 'mã']
  3. Gửi $ _GET [ 'mã'] đến máy chủ OAuth làm một dấu cho
  4. cửa hàng mã thông báo trong cơ sở dữ liệu cho người sử dụng (hoặc phiên làm việc, nếu nó rất ngắn ngủi)

Nhưng khi thực hiện nó với một lịch đơn như thế này, bạn sửa đổi bước 4. thay vào đó, bạn đổ token để sàng lọc và sao chép nó vào file PHP của bạn như biến, thay vì đặt nó trong cơ sở dữ liệu. Sau đó, khi bạn chuyển thẻ truy cập tới máy chủ, bạn chỉ cần chuyển mã thông báo tĩnh đã biết chứ không phải mã thông báo động từ cơ sở dữ liệu/phiên.

+0

Xin cảm ơn, nhưng mã thông báo truy cập có ngắn ngủi không? Tôi phải làm điều này bằng tay mọi lúc. – andy

+0

Tôi đã sử dụng phương pháp chính xác này cho một lịch kể từ tháng 12 mà không có vấn đề gì và các sự kiện trên lịch này cập nhật thường xuyên đến mức tôi biết nó vẫn hoạt động. Tôi nghĩ rằng mã thông báo truy cập không có thời gian sử dụng, nhưng nó được tính theo tháng, chứ không phải ngày hoặc giờ. – kingcoyote

+0

Được rồi, cảm ơn tôi sẽ cho nó đi. – andy

2

Xem mathewh của câu trả lời ở đây:

How to automate login to Google API to get OAuth 2.0 token to access known user account

Các bóng đèn đối với tôi là khi bạn nhận được access token bạn nhận được một refresh_token cũng ... bạn sử dụng thẻ này để "refresh" truy cập của bạn thẻ một lần nó hết hạn.

Lần đầu tiên không có cách nào để thực hiện bước ủy quyền thủ công.

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