2014-10-14 3 views
0

[EDIT] Просто, чтобы помешать вам читать это: я уже нашел ответ сам, а также отправил AnSer здесь ниже .. :)Как получить адрес электронной почты от LinkedIn с помощью Flask-oauthlib?

Я строю сайт, используя (отлично) Python Flask framework, и Теперь я создаю интеграцию с LinkedIn. Для этого я использовал пример I found here, который работает, возвращая данные r_basicprofile.

Теперь я хочу вернуть дополнительную информацию от linkedin, поэтому я изменил scope от 'r_basicprofile' до 'r_emailaddress'. Он правильно переходит к LinkedIn и (в дополнение к информации о базовом профиле) также правильно запрашивает доступ к адресу электронной почты. После ввода моего имени пользователя и пароля я получаю базовый файл обратно в json. Единственная часть, которую я не понимаю из кода примера, - line 54, которая получает фактическую информацию из LinkedIn. Функция выглядит следующим образом:

@app.route('/login/authorized') 
def authorized(): 
    resp = linkedin.authorized_response() 
    if resp is None: 
     return 'Access denied: reason=%s error=%s' % (
      request.args['error_reason'], 
      request.args['error_description'] 
     ) 
    session['linkedin_token'] = (resp['access_token'], '') 
    me = linkedin.get('people/~') # <== HOW can I get this line to return the email address? 
    return jsonify(me.data) 

JSON, который в настоящее время получает возвращается следующим образом:

{ 
    "firstName": "MyFirstName", 
    "headline": "Developer", 
    "lastName": "MyLastName", 
    "siteStandardProfileRequest": { 
    "url": "https://www.linkedin.com/profile/view?id=12345678&authType=name&authToken=XXXXXXXXX=api*a1234567*s1234567*" 
    } 
} 

Кто-нибудь знает, как я могу на самом деле получить адрес электронной почты, после того, как правильно санкционирование моего приложения для электронной почты ?

Все советы приветствуются!

ответ

0

Nevermind! Я уже нашел это!

мне нужно использовать следующее, чтобы получить адрес электронной почты:

emailAddress = linkedInApp.get('people/~/email-address') 
print emailAddress.data 

В следующий раз я буду читать немного больше, прежде чем я пост. Спасибо за внимание!

ps: Я могу принять только свой ответ в течение 2 дней. Так что извините меня, если вы пришли к этому вопросу, потому что вы видели, что ответа еще не принято. Если кто-то еще сможет скопировать мой ответ, я буду рад принять их ответ, чтобы этот вопрос мог пойти по списку забытых вопросов. :)

+0

«Если кто-то может скопировать вставку, мой ответ, я буду счастлив принять их ответ "не очень хорошая идея. Вы нашли свой собственный ответ, поэтому вам лучше принять ваш собственный ответ :) – avi

+0

@avi - Хорошо. В этом случае мне придется подождать 2 дня .. :) – kramer65