python-3.x - 在 sample-app.py 上将 SSL 与 python-instagram 和 localhost 结合使用

标签 python-3.x ssl localhost instagram

我计划使用 sample-app.py 作为我正在构建的内容的基线,然后从那里扩展它。只想熟悉 instagram API 并从那里构建。

我正在尝试使用 python-instagram 提供的 sample-app.py。我已经在 instagrams 网站上注册了一个应用程序。我使用 sample-app.py 中的默认重定向 uri 进行设置:
http://localhost:8515/oauth_callback。 我能够授权我的 instagram 帐户使用该应用程序,但是当我单击任何链接时,我收到有关访问 token 的错误。

当您查看保持打开状态的 python 命令行窗口时,我收到以下错误:

“check_hostname 需要带有 CERT_OPTIONAL 或 CERT_REQUIRED 的 SSL 上下文”

看起来,当示例应用程序正在处理以下行时,它正在尝试连接到 instagram,但无法连接,因为本地主机中的 SSL 设置不正确。如何设置 SSL 才不会出现上述错误?

access_token, user_info = unauthenticated_api.exchange_code_for_access_token(代码) 如果不是 access_token: 返回“无法获取访问 token ” api = client.InstagramAPI(access_token=access_token) request.session['access_token'] = access_token 打印(“访问 token =”+access_token)

最佳答案

有几个步骤可以解决这个问题(看起来实际上是几个问题加在一起导致了这个问题):

  1. 使用 openssl 创建 ssl 证书并将证书保存到与 python 脚本相同的位置。在此处下载 open ssl:http://slproweb.com/products/Win32OpenSSL.html

  2. 您需要调整 bottle 使其支持 ssl。为此,请在类 WSGIRefServer(ServerAdapter) 中的运行中添加以下行:

    导入 ssl srv.socket = ssl.wrap_socket ( srv.socket, certfile='server.pem', # 证书路径 server_side=True)

  3. python 3 及更高版本中存在错误( https://github.com/jcgregorio/httplib2/issues/173 )。我用的是 3.4,所以 bug 可以在 3.5 中修复。在 instagram/oauth2.py 文件中,将所有 disable_ssl_certificate_validation=False 更改为 True

关于python-3.x - 在 sample-app.py 上将 SSL 与 python-instagram 和 localhost 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27654403/

相关文章:

python-3.x - 这是在 Python 3 中从 URL 获取图像的正确方法吗?

Firefox 和 SSL 页面 - 在某些网站上需要很长时间

.net - WCF 错误 "Could not establish secure channel for SSL/TLS ..."突然出现

php - 尝试安装 Composer 时出现 SSL 证书错误

java - 当用户访问网站时以编程方式编译java类

python - 如何使用 tweepy-python 获取用户喜欢(收藏)的推文?

python - 如何将字典 kwargs 输入到 matplotlib 图例例程中?

html - 为什么 LESS css 在本地主机上不起作用

php - 如何终止 iTerm2 中的旧 session

python - 使用字典使用 Python 将罗马数字转换为整数