在Django应用中集成LinkedIn API

0 投票
1 回答
1318 浏览
提问于 2025-04-18 18:50

我正在尝试使用python-linkedin这个包从LinkedIn的API获取访问令牌,相关信息可以在https://github.com/ozgur/python-linkedin找到,以下是我使用的代码:

def get_linkedin_token(request):

    access_code = request.GET.get('code')

    if access_code is None:
    request.session['authentication'] = linkedin.LinkedInAuthentication(
                LINKEDIN_CONSUMER_KEY,
                LINKEDIN_CONSUMER_SECRET,
                RETURN_URL,
                linkedin.PERMISSIONS.enums.values())
    **url = request.session['authentication'].authorization_url**
        return HttpResponseRedirect(url)

    else:
        request.session['authentication'].authorization_code = access_code
        access_token = authentication.get_access_token()
        return HttpResponse(access_token)

上面的代码在url那里出现了一个类型错误,提示'不是JSON可序列化的';当我在浏览器中打开这个网址时,一切正常,但在应用程序中却出现了这个错误。请问这是怎么回事,我该如何解决呢?谢谢!

1 个回答

0

上面的代码是对的,只需要在这一行做个小修正:

access_token = authentication.get_access_token()

应该改成:

access_token = request.session['authentication'].get_access_token()

因为我把认证对象初始化成了会话变量,但调用的时候没有用到 request.session[ ]。所以这样做之后,任何人都可以轻松地用 python-linkedin 获取 LinkedIn API 的访问令牌。

撰写回答