2014-06-27 20 views
8

Tôi đã cố triển khai ứng dụng cần người dùng cấp quyền truy cập vào Google Analytics. Tôi đã theo hướng dẫn này:Cách nhận mã thông báo làm mới khi sử dụng Ứng dụng khách API của Google API

https://developers.google.com/analytics/solutions/articles/hello-analytics-api

Và ở một số nơi khác có mã cho AngularJs trong đó sử dụng các functionL cùng

https://gist.github.com/jakemmarsh/5809963

Vấn đề của tôi là, rằng auth hoạt động khá tốt , nhưng nó không trả về một hàm refresh_token. Nó không bao giờ trả về một hàm refresh_token. Tôi đã thử tất cả khả năng có sẵn trên web. 1. Lần đầu tiên, 2. Sử dụng dấu nhắc = bắt buộc vv .. Nhưng không có gì có vẻ trả về hàm refresh_token. Tôi đoán rằng một phần được bỏ qua bởi khách hàng hoặc một cái gì đó.

Tôi cần biết làm cách nào tôi có thể nhận được tệp refresh_token khi người dùng cấp quyền truy cập lần đầu tiên để tôi có thể lưu nó.

+3

Xin chào, Tôi hiện đang gặp sự cố tương tự khi sử dụng API Lịch Google. Bạn có thể giải quyết vấn đề này không? –

Trả lời

18

Nó không trả về mã thông báo làm mới như được thiết kế. Hướng dẫn và mã bạn đã đề cập đang sử dụng Google APIs Client Library for JavaScript. Thư viện này sử dụng số OAuth 2.0 client-side flow để thực hiện các yêu cầu yêu cầu ủy quyền.

Như The OAuth 2.0 Authorization Framework says:

OAuth 2.0 client-side dòng chảy (AKA dòng chảy ngầm) được sử dụng để lấy thẻ truy cập (nó không hỗ trợ việc phát hành thẻ refresh) và được tối ưu hóa cho khách hàng nào biết đến hoạt động URI chuyển hướng cụ thể. Các máy khách này thường được thực hiện trong một trình duyệt bằng cách sử dụng một ngôn ngữ kịch bản như JavaScript.

Máy chủ ủy quyền KHÔNG ĐƯỢC phát hành mã thông báo làm mới.

Trong thực tế, Các dòng mã ủy quyền là người duy nhất mà phát hành thẻ làm mới, và Google hỗ trợ dòng này trong những kịch bản: các ứng dụng máy chủ Web, các ứng dụng đã cài đặt, và các ứng dụng trên các thiết bị hạn chế đầu vào, nhưng không phải khách hàng- các ứng dụng (JavaScript) hoặc tài khoản dịch vụ. Get more details from here.

Vì vậy, bạn sẽ không nhận được mã thông báo làm mới theo cách này.

+0

Còn nếu chúng ta muốn sử dụng mã thông báo truy cập làm mới được tạo bởi đăng nhập phía máy chủ (PHP) trong api phía máy khách JavaScript để tải lên video youtube sẽ hoạt động ...? – usama

+0

@usama bạn cần sử dụng mã thông báo truy cập được trả lại (được tạo bởi mã thông báo làm mới) từ youtube. –

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