2014-10-06 14 views
18

Chúng tôi cần phát triển phần mở rộng gmail nội bộ để xử lý email đến, cho phép người nhận tương tác với phần mềm nội bộ của chúng tôi. Tôi đã cố gắng tìm hiểu cách sử dụng OAuth 2.0 trong Gmail Contextual Gadget, nhưng tôi không thể tìm thấy bất kỳ tài liệu cụ thể nào về điều này. Tôi không thể tìm thấy bất kỳ điều gì hữu ích khi tôi tìm kiếm tràn ngăn xếp với ngữ cảnh + google-oauth (từ khóa được đề xuất bởi Google).Gmail Contextual Gadget (plugin/tiện ích mở rộng của Gmail): Không được chấp nhận? Không thể nào? Làm sao? (Không thể thực hiện OAuth 2.0)

Trước khi bạn cho tôi trang tiêu chuẩn, hãy chắc chắn rằng nó có này:

  • Tối thiểu, một ví dụ về Gmail theo ngữ cảnh manifest.xml tiện ích sử dụng OAuth 2.0
  • Lý tưởng nhất, với lời giải thích làm thế nào để triển khai nó tại một tên miền (không phải thị trường), vì vậy tôi biết nó thực sự đã được triển khai & thử nghiệm.

Ví dụ, tiêu chuẩn chào ví dụ trong trang theo ngữ cảnh Gadgets sử dụng OpenID ("openIdRealm"), và đã được viết trước khi OAuth 2.0:

https://developers.google.com/gmail/contextual_gadgets

OpenID là không được cho phép trong OAuth 2.0:

https://developers.google.com/apps-marketplace/practices#3_use_oauth20

Your application must not use OpenID or OAuth1.0. Any evidence of such usage will result in your application failing the review process.

Lưu ý rằng Tiện ích theo ngữ cảnh là ứng dụng Javascript phía máy khách, rất khác với ứng dụng máy chủ web và ứng dụng đã cài đặt. Vì vậy, OAuth 2.0 nên được sử dụng như thế này:

https://developers.google.com/accounts/docs/OAuth2#clientside https://developers.google.com/accounts/docs/OAuth2UserAgent

Nhưng theo ngữ cảnh tiện ích chạy trong một container, trong đó xử lý các cuộc gọi đầu tiên của OAuth (google gọi, trong đó kêu gọi trở lại trang web của chúng tôi với thẻ ...). Sống ở phía khách hàng, các tiện ích theo ngữ cảnh "không thể giữ bí mật". trang web của chúng tôi (trang chuyển hướng, https://example.com/oauth2callback) cần lưu mã thông báo truy cập (và có thể làm mới mã thông báo) cho phiên có thể truy cập được vào mã tiện ích của chúng tôi ở phía máy khách.

Tôi lý tưởng không sử dụng SSO mà tôi thấy chỉ "cần thiết cho các ứng dụng được triển khai trên thị trường". Việc triển khai thay thế là "cho tên miền của bạn", trong đó sử dụng Google Apps Extensions điều khiển:

https://developers.google.com/google-apps/extensions-console/

Nhưng phần mở rộng giao diện điều khiển nói, trên đầu, "Chúng tôi đang cải thiện kinh nghiệm người dùng, hãy thử Developers Console mới", trong đó liên kết đến:

https://console.developers.google.com/?redirected=true

Developers Console:

  • Nó cho thấy t dự án mũ đã được tạo trước đó trong bảng điều khiển tiện ích mở rộng ứng dụng. Tôi có thể nhấp vào nó để mở một menu lớn (sang một bên, bên trái)
  • APIs & Xác thực/thông tin xác thực - Tôi đã tạo ID ứng dụng khách và bí mật cho ứng dụng của mình. Rõ ràng, tôi phải sử dụng Ứng dụng web, không phải Tài khoản dịch vụ hoặc ứng dụng đã cài đặt vì tôi đang cố gắng truy cập vào một số dữ liệu cá nhân của người dùng (truy cập email), không chỉ dịch vụ của Google và tôi không phải là ứng dụng được cài đặt độc lập.

Không có nơi nào để báo cáo ID ứng dụng khách này ở bất kỳ đâu trong tiện ích theo ngữ cảnh. Có đăng ký và quên không?

Ngoài ra (một lỗi?), quyền hiển thị ID ứng dụng khách của tôi trong "Tài khoản dịch vụ" mặc dù tôi KHÔNG tạo thông tin đăng nhập tài khoản dịch vụ.

Và sau đó điều này: Tôi không biết cách triển khai tiện ích theo ngữ cảnh của mình (không phải là ứng dụng độc lập) trên miền của tôi từ Bảng điều khiển dành cho nhà phát triển mới này. Dường như chỉ có các tùy chọn liên quan đến triển khai trên đám mây dưới tab tổng quan và tab Tính toán ở bên trái.

Khi tôi cố gắng triển khai từ Apps Extensions Console (được cho là không phản đối, chỉ là cải tiến), tôi nhận được lỗi này:

Google Apps Marketplace (I never deployed to marketplace, only my own domain) 
Application installation not allowed. 
The OAuth1.0 version is no longer available. 
Instead, try installing the OAuth2.0 version. 
[Return to dashboard] (button) 

Hơn thế nữa, trở về nút bảng điều khiển sẽ đưa tôi đến miền quản trị trang web cho phép không phát triển cũng không triển khai:

https://admin.google.com/mydomain.com/

bằng cách này, Console Apps Extensions không bao giờ truy cập vào trang chuyển hướng tôi đã tạo ra, và không bao giờ đọc các tập tin thông số tiện ích trên trang web của một trong hai (không bao giờ truy cập bằng google như đã hứa), vì vậy hãy báo lỗi cho tôi ssage phải nói rằng tệp manifest.xml không sử dụng OAuth 2.0 ... Hoặc Bảng điều khiển tiện ích mở rộng ứng dụng không sử dụng chính nó và đổ lỗi cho tôi!

Vì vậy, Gmail theo ngữ cảnh App:

  • Deprecated?
  • Không thể bây giờ?
  • Được cấp phép bằng OAuth 2.0? Làm sao?
+0

Bạn đã kiểm tra bài viết trên blog này mà đi qua en giải thích bằng ví dụ của việc sử dụng tiện ích gmail theo ngữ cảnh : http://pipetree.com/qmacro/blog/2010/06/getting-started-with-gmail-contextual-gadgets/ – user3378649

+0

Tôi đã xem bài đăng. Bài đăng là từ năm 2010, trước phiên bản OAuth 2.0, hiện bắt buộc. –

Trả lời

4

Có cùng vấn đề. Tôi (hầu như không) đã quản lý các tiện ích của mình trên email tên miền của mình qua các bước bên dưới. Đây là những gì tôi có thể chia sẻ;

1) Tạo dự án qua (https://console.developers.google.com). Đã chuyển đổi trên SDK thị trường trong menu điều hướng bên API. Khi đã bật, hãy chuyển lên đầu trang và nhấp vào 'bánh răng bánh răng' cho Google Apps Marketplace SDK. Điều này sẽ dẫn bạn đến một trang với một liên kết cho (Tới bàn điều khiển ban đầu). Nhấp vào đường dẫn.

2) Bạn sẽ được chuyển tiếp đến trang biểu mẫu. Điền vào tất cả các trường bắt buộc trong biểu mẫu. Kiểm tra phần mở rộng COB và khai báo ID trình trích xuất của bạn (tôi đã sử dụng bộ giải nén trước khi đóng hộp, chưa thử nghiệm nó với các trình giải nén tùy chỉnh) dưới Url trích xuất văn bản, url tiện ích của bạn qua trường văn bản Url tiện ích và chọn phạm vi. Nhấp vào nút Thêm và sau đó nhấp vào nút Lưu thay đổi khi bạn hoàn tất.

3) Chuyển đến menu Truy cập API và tạo ID ứng dụng khách OAuth 2.

Đây là nơi các bước không rõ ràng đối với tôi, nhưng tôi sẽ chia sẻ những gì tôi đã làm để có các tiện ích có sẵn trên miền của mình.

3) Tôi nhấp vào Kiểm tra nút Install dòng chảy trên đầu trang của hình thức ..

4) Tôi thêm người dùng admin như các biên tập viên cho dự án này.

5) Sau đó, tôi phải đăng xuất, xóa bộ nhớ cache, đăng nhập với tư cách quản trị viên/miền để xem tiện ích theo ngữ cảnh ở cuối email.

Hy vọng điều này sẽ hữu ích.

+0

Tôi xin lỗi vì hiện tại tôi đã từ bỏ các ứng dụng theo ngữ cảnh và đã tiếp tục. Tôi sẽ mua dịch vụ google mail cho trang web của riêng mình để kiểm tra điều này, nhưng sau khi vấn đề xảy ra, tôi quyết định không trả tiền cho Google (và đã hết thời gian thử nghiệm 30 ngày); chúng không giúp dễ dàng phát triển các API của chúng. Nếu tôi có thể thuyết phục ông chủ của tôi, tôi sẽ kiểm tra giải pháp của bạn trên trang web của công ty mà tôi không có quyền truy cập quản lý (có thể là Thứ Ba tới). –

2

Cách được mô tả tại https://developers.google.com/gmail/contextual_gadgets dường như hoàn toàn lỗi thời. Ngay cả biểu mẫu trong bảng điều khiển Google Apps dành cho các tiện ích dường như đã lỗi thời.

Bạn cần phải làm theo mô tả này: https://developers.google.com/apps-marketplace/preparing

Gadgets theo ngữ cảnh hiện nay đang phát triển bằng cách sử dụng bảng điều khiển API (không ứng dụng giao diện điều khiển) và có một hình thức để tạo ra nhổ, vv

0

Hãy làm theo các bước dưới đây :

  1. Đăng nhập để quản trị Gmail
  2. mở tab mới và gõ http://console.developers.google.com
  3. Nhấp vào phần API từ bảng điều khiển bên trái của Gmail
  4. Chọn các API sau
    i. gmail API
    ii. API Google Marketplace
    iii. API lịch
    iv. SDK quản trị của Google
  5. Sau khi bật tất cả các API ở trên, hãy mở SDK Google Apps Marketplace và nhấp vào liên kết Định cấu hình (Bạn phải tạo ID ứng dụng khách)
  6. Điền dữ liệu với dữ liệu thích hợp, bạn cần tải lên kích thước phù hợp hình ảnh cũng
  7. Điền vào tất cả các trường bắt buộc và thêm trình trích xuất như Google đã đề xuất.
    i) tên param nên theo API và giá trị cho tất cả là theo ngữ cảnh "*" khác tiện ích sẽ không xuất hiện trong gmail
  8. Enable URL Phổ Dịch vụ
  9. Kích hoạt tính năng mở rộng COB
  10. Thêm Gmail Trình trích xuất tiện ích theo ngữ cảnh, bạn có thể thêm nhiều trình trích xuất cho Tiện ích nhưng URL tiện ích phải giống với tất cả các trình giải nén
  11. Bạn có thể thêm nhiều phạm vi cho mỗi trình trích xuất
  12. Lưu tất cả thay đổi.

Đó là tất cả!

Bạn có thể làm theo các liên kết dưới đây để bạn tham khảo: https://developers.google.com/apps-marketplace/preparing

5

Các tài liệu cho Google Contextual Gadgets là một xấu joke- lỗi thời và sai, không lãng phí thời gian của bạn.

Câu trả lời ở đây trên SO khiến tôi gần gũi hơn, nhưng tôi chưa bao giờ thực sự làm được điều đó.

May mắn tôi đã kết thúc việc tìm kiếm gmail.js, cho phép tôi viết một phần mở rộng Chrome để làm những gì tôi cần ...

1- Tải về các dự án Gmail Chrome Extension Boilerplate, mà là một phần mở rộng chrome Xin chào ví dụ thế giới sử dụng gmail. js.

2- Cập nhật chức năng chính trong chính.tập tin js để một cái gì đó như thế này:

var main = function(){ 

    gmail = new Gmail(); 
    gmail.observe.on("open_email", function(id, url, body, xhr) { 

     // Inject a toolbar: 
     var $email_body = gmail.dom.email_body(); 
     $email_body.prepend('<div class="my_toolbar"><a>Do something</a></div>'); 
    }); 
} 

Điều đó sẽ cung cấp cho bạn điều này:

enter image description here

+0

Xin chào @Yarin, bạn có thể giải thích cách xuất bản các thay đổi mã ở trên bên trong gmail không? –

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