2012-02-23 12 views
11

Tôi biết có những câu hỏi tương tự, nhưng chịu đựng với tôi ...Làm cách nào để nhận dữ liệu email liên hệ của người dùng từ Windows Live?

Tôi đã gặp sự cố tương tự với những người hỏi khác về việc chỉ nhận phiên bản băm của địa chỉ email liên hệ, and understand why.

Điều này là, tôi đã nhận thấy rằng google + dường như có thể nhận địa chỉ email liên hệ tốt bằng cách sử dụng LiveConnect. Sử dụng fiddler, tôi nhận thấy rằng họ dường như yêu cầu một phạm vi xác thực "wl.contacts_emails" mà does not seem to be documented.

Một số googling đề xuất "quyền nâng cao" nhưng không đề cập đến điều này khi thiết lập hoặc chỉnh sửa cửa sổ trực tiếp kết nối ứng dụng trên trang web của họ.

Làm cách nào để nhận phạm vi này trên ứng dụng của tôi?

+1

Phạm vi này đang hoạt động đối với tôi. Tôi không biết những gì còn thiếu cho bạn. Chỉ cần bình luận ở đây và tôi có thể giúp bạn tìm một giải pháp. – nalply

+1

Tôi nhận thấy điều này và tôi quan tâm nếu phạm vi này vẫn hoạt động. Tôi đã thử nó trên bản demo sdk sống và nó đã làm việc, nhưng từ chối làm việc thông qua oauth từ ứng dụng web của tôi. Nó vẫn hoạt động trong trường hợp của bạn? – FreeCandies

+0

@FreeCandies Xem trả lời của tôi cho câu trả lời bên dưới. Kiểm tra các URL bạn sử dụng để ủy quyền và nhận mã thông báo truy cập. – Vilinkameni

Trả lời

9

Nó hoạt động cho tôi trong sản xuất bằng cách sử dụng wl.contacts_emails IN CONJUNCTION VỚI wl.emails. Tôi đã không kiểm tra nó chỉ với wl.contacts_emails nhưng linkedin sử dụng cả hai phạm vi.

Sau WL.init đây là toàn bộ phạm vi sử dụng:

WL.login({ 
    scope: ['wl.basic', 'wl.emails', 'wl.contacts_emails'], 
}).then(function(response) { 

Nó vẫn không được ghi nhận và Microsoft có explicitly stated rằng bạn không thể có được địa chỉ email liên hệ, vì vậy sử dụng một cách thận trọng. Tuy nhiên, toàn bộ hệ thống oauth là trò đùa lớn nhất của một api tôi từng làm việc cùng, vì vậy tôi đoán nó chỉ là cụm sao-effed mà ai đó chỉ quên viết nó xuống.

Chỉnh sửa: full story là ở đây, Microsoft đã xác nhận sự tồn tại của wl.contacts_emails và xác nhận rằng nó chỉ hoạt động với một số đối tác nhất định đã thực hiện thỏa thuận với họ. Tuy nhiên, họ đang nói dối để trang trải các bài hát của họ và nó hoạt động cho tất cả các khách hàng. Toàn bộ điều là một mớ hỗn độn.

TL; DR wl.contacts_emails hoạt động nhưng chúng sẽ không thừa nhận, vì vậy, có khả năng trong tương lai chúng có thể tách nó ra khỏi bạn.

+0

Cảm ơn bạn rất nhiều! Đó là những gì tôi cần! –

+0

Điều này dường như không hoạt động nữa. Tôi nhận được '? Error = invalid_scope & error_description =% 20provided% 20value% 20for% 20the% 20input% 20parameter% 20% 27scope% 27% 20is% 20not% 20valid% 20for% 20is% 20client% 20application.' (lỗi" Giá trị được cung cấp đối với tham số đầu vào 'scope' không hợp lệ cho ứng dụng khách này. ") được thêm vào URL điểm cuối của tôi khi tôi cố gắng sử dụng' wl.contacts_emails' kết hợp với 'wl.emails' và' wl.basic' là 'scope' . Khi tôi gọi '/ me/contacts' với' wl.basic, wl.emails, wl.contacts_emails' thông qua "Interactive Live SDK", tuy nhiên, nó cung cấp danh sách liên lạc của tôi với email. – Vilinkameni

+0

Cập nhật: Tôi dường như nhận được lỗi này khi chuyển các tham số đó tới 'https: // oauth.live.com/authorize' và' https: // oauth.live.com/token' (mặc định từ thư viện 'oauth2-client' cho PHP), nhưng khi tôi thay đổi các URL thành 'https: // login.live.com/oauth20_authorize.srf' và' https: // login.live.com/oauth20_token.srf' tương ứng trong lớp "Microsoft", sau [lời khuyên ở đây] (http://techjoomla.com/invitex/how-to-use-hotmailrest-api-to-import-contacts.html), nó hoạt động. – Vilinkameni