Как да получа имейл адрес от LinkedIn с помощта на Flask-oauthlib?

[РЕДАКТИРАНЕ] Само за да ви попреча да четете това: вече намерих отговора сам и също публикувах отговора тук по-долу.. :)

Създавам уебсайт, използвайки (отличен) Python рамката на Flask и сега изграждам интеграция с LinkedIn . За това използвах примера, който намерих тук и работи чрез връщане на данните от r_basicprofile.

Сега искам да върна повече информация от Linkedin, затова промених scope от 'r_basicprofile' на 'r_emailaddress'. Правилно отива в LinkedIn и (в допълнение към основната информация за профила) също пита правилно за достъп до имейл адреса. След като въведа потребителското си име и парола, получавам обратно само основния профил в json. Единствената част, която не разбирам от примерния код, е ред 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*"
  }
}

Някой знае ли как всъщност мога да получа имейл адреса, след като правилно упълномощих приложението си за имейл адреса?

Всички съвети са добре дошли!


person kramer65    schedule 14.10.2014    source източник


Отговори (1)


Няма значение! Вече го намерих!

Трябва да използвам следното, за да получа имейл адреса:

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

Следващият път ще прочета малко повече, преди да публикувам. Благодаря все пак за вниманието!

ps: мога да приема собствения си отговор само след 2 дни. Така че ме извинете, ако сте стигнали до този въпрос, защото сте видели, че отговорът все още не е приет. Ако някой друг може да копира и постави моя отговор, ще се радвам да приема неговия отговор, така че този въпрос да отиде в списъка със забравени въпроси.. :)

person kramer65    schedule 14.10.2014
comment
„Ако някой друг може да копира и постави моя отговор, ще се радвам да приема неговия отговор“ не е добра идея. Намерихте своя собствен отговор, така че е по-добре да приемете собствения си отговор :) - person avi; 14.10.2014
comment
@avi - Добре. В такъв случай ще трябва да изчакам 2 дни.. :) - person kramer65; 14.10.2014