天道酬勤,学无止境

logging into a twitter using python3 and requests

I have a project that I am working on, and the requirements are to login to a website using a username and password. I have to do it in python, and then be able to access a part of the site only accessible to people who are logged in. I have tried a few variations of coding to do this, and haven't been able to successfully log in yet. Here is my coding:

the function to login to it:

def session2(url):

#r = requests.get(url)
#ckies = []

#print("here are the cookies for twitter:\n")
#for cky in r.cookies:
#    print(cky.name, cky.value)
#    ckies.append(cky)

s = requests.Session()

session = s.get(url, verify=False)
print("\nheaders from site\n")
print(session.headers)

tree = html.fromstring(session.text)
# extract the auth token needed to login along with username and password
auth_token = list(set(tree.xpath("//input[@name='authenticity_token']/@value")))[0]
uname = "username"
pword = "password"
username = 'session[username_or_email]'
password = 'session[password]'
# payload = {name of username variable : string you want, name of password variable:
# string you want, name of auth token: string gotten from session
payload = dict(username = uname, password = pword , authenticity_token = auth_token)
header = {'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36'}
#do post request
# might have to change headers to be a header for chrome
response = s.post(
    url,
    data = payload,
    #headers = dict(referer = url)
    headers = header
)
print("\nheaders post\n")
print(response.request.headers)
session = s.get("http://www.twitter.com/username/followers", verify=False)
print("\nheaders get\n")
print(session.headers)
print("\nhtml doc\n")
print(session.text)
return session

code to call it:

url = "http://www.twitter.com/login"
sessions = session2(url)

the username on the site looks like this when you inspect it:

<input class="js-username-field email-input js-initial-focus" type="text" name="session[username_or_email]" autocomplete="on" value="" placeholder="Phone, email or username">

and the password section/token section look like this:

<input class="js-password-field" type="password" name="session[password]" placeholder="Password">

<input type="hidden" value="ef25cb09a8c7fe16c54e3df099e206e605b1170a" name="authenticity_token">

I know the auth token changes, which is why i have it get it from the function. When I try to run this, it just goes to the main page rather than the page i need.

One problem I think is that when I print out the header that I send in the post, it says:

{'Accept-Encoding': 'gzip, deflate', 'Connection': 'keep-alive', 'Accept': '/', 'User-Agent': 'python-requests/2.9.1'}

which I thought I changed to chrome's header, but it doesn't seem to stick.

Also, I know there is a way if I use Oauth, but I'm not allowed to use that, i have to do it based on being able to login like I'm using a browser.

Can you tell me if there is anything wrong with what I've done, as well as any hints on how to fix it? I've tried other stack overflow problems using requests and logging in, but those didn't work either.

EDIT: ok, i did a response.request.headers, and it came out with the right header, i think, so i don't think that is the problem

header it prints:

 {'Accept': '*/*', 'Content-Type': 'application/x-www-form-urlencoded', 'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36', 'Cookie': '_twitter_sess=some huge amount of number/letters; guest_id=v1%3A147509653977967101', 'Connection': 'keep-alive', 'Accept-Encoding': 'gzip, deflate'}

评论

This will log you in:

import requests
from bs4 import BeautifulSoup

username = "uname"
password = "pass"
# login url
post = "https://twitter.com/sessions"
url = "https://twitter.com"

data = {"session[username_or_email]": username,
        "session[password]": password,
        "scribe_log": "",
        "redirect_after_login": "/",
        "remember_me": "1"}


with requests.Session() as s:
    r = s.get(url)
    # get auth token
    soup = BeautifulSoup(r.content, "lxml")
    AUTH_TOKEN = soup.select_one("input[name=authenticity_token]")["value"]
    # update data, post and you are logged in.
    data["authenticity_token"] = AUTH_TOKEN
    r = s.post(post, data=data)
    print(r.content)

You can see if we run it using my own account, we get my name from my profile:

In [30]: post = "https://twitter.com/sessions"

In [31]: url = "https://twitter.com"

In [32]: data = {"session[username_or_email]": username,
   ....:         "session[password]": password,
   ....:         "scribe_log": "",
   ....:         "redirect_after_login": "/",
   ....:         "remember_me": "1"}

In [33]: with requests.Session() as s:
   ....:         r = s.get(url)
   ....:         soup = BeautifulSoup(r.content, "lxml")
   ....:         AUTH_TOKEN = soup.select_one("input[name=authenticity_token]")["value"]
   ....:         data["authenticity_token"] = AUTH_TOKEN
   ....:         r = s.post(post, data=data)
   ....:         soup = BeautifulSoup(r.content, "lxml")
   ....:         print(soup.select_one("b.fullname"))
   ....:     

<b class="fullname">Padraic Cunningham</b>

Just be aware each time you login, you will the We noticed a recent login for your account ... email.

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • my onNewIntent is not calling
    Creating an application which integrate Twitter. I use this tutorial: http://blog.blundell-apps.com/sending-a-tweet/ package com.blundell.tut.ttt; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.webkit.WebView; import android.widget.Button; import android.widget.Toast; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.TwitterFactory; import twitter4j
  • 我的 onNewIntent 没有打电话(my onNewIntent is not calling)
    问题 创建一个集成 Twitter 的应用程序。 我使用本教程: http://blog.blundell-apps.com/sending-a-tweet/ package com.blundell.tut.ttt; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; import android.net.Uri; import android.os.Bundle; import android.util.Log; import android.view.View; import android.webkit.WebView; import android.widget.Button; import android.widget.Toast; import twitter4j.Twitter; import twitter4j.TwitterException; import twitter4j.TwitterFactory; import twitter4j.auth.AccessToken; import twitter4j
  • 如何在 iOS 中通过 Twitter API 获取用户电子邮件地址?(How to get user email address via Twitter API in iOS?)
    问题 我尝试了多个 SDK,但无法从任何资源中获取电子邮件 ID。 为此,我尝试了FHSTwitterEngine ,但没有得到解决方案。 FHSTwitterEngine *twitterEngine = [FHSTwitterEngine sharedEngine]; NSString *username = [twitterEngine loggedInUsername]; //self.engine.loggedInUsername; NSString *key = [twitterEngine accessToken].key; NSString *secrete = [twitterEngine accessToken].secret; if (username.length > 0) { NSDictionary *userProfile = [[FHSTwitterEngine sharedEngine] getProfileUsername:username]; NSLog(@"userProfile: %@", userProfile); 回答1 编辑 Twitter 更新 API 后,现在用户可以使用TWTRShareEmailViewController类获取电子邮件。 // Objective-C if ([[Twitter sharedInstance]
  • 在iOS中从Twitter获取用户个人资料详细信息(尤其是电子邮件地址)(Get user profile details (especially email address) from Twitter in iOS)
    问题 我的目标是根据他/她的Twitter帐户获取用户的详细信息。 现在,首先让我解释一下我想做什么。 在我的情况下,将向用户提供使用Twitter帐户注册的选项。 因此,基于用户的Twitter帐户,我希望能够获取用户详细信息(例如,电子邮件ID,姓名,个人资料图片,生日,性别等),并将这些详细信息保存在数据库中。 现在,许多人可能会建议我使用ACAccount和ACAccountStore ,这是一个提供用于访问,操纵和存储帐户的接口的类。 但就我而言,即使用户尚未在iOS设置应用中为Twitter配置帐户,我也想注册该用户。 我希望用户导航到Twitter的登录屏幕(在Safari中或在App本身中,或使用任何其他替代方法)。 我还参考了具有API列表的Twitter文档。 但是我很困惑如何向用户显示登录屏幕以登录Twitter帐户,以及如何获取个人资料信息。 我应该使用UIWebView还是将用户重定向到Safari或采用其他方式? 回答1 Twitter为此提供了一个漂亮的框架,您只需要将其集成到您的应用程序中即可。 https://dev.twitter.com/twitter-kit/ios 它有一个简单的登录方法: // Objective-C TWTRLogInButton* logInButton = [TWTRLogInButton
  • 使用twitter4j库时未发现身份验证挑战(No authentication challenges found while using twitter4j library)
    问题 我目前正在将Twitter集成到我的android应用程序中。 我在一定程度上成功地整合了它。 但是,在以下情况下,我得到“未No authentication challenges found异常。 我使用App-only authentication (无需登录Twitter)从Twitter获取公共供稿。 我成功地获取了它们。 当我尝试回复或转发或将其标记为收藏时,我会检查用户是否已登录,如果尚未登录,则尝试先登录然后进行回复或转发。 但是我在尝试仅登录时遇到了上述异常,所以我没有收到回复或转发。 注意:如果我不使用App-only authentication ,而是选择直接登录(无需获取公共供稿),则可以正常运行,并且可以登录。 以下是堆栈跟踪: 11-14 19:33:03.597: W/System.err(3305): No authentication challenges found 11-14 19:33:03.667: W/System.err(3305): Relevant discussions can be found on the Internet at: 11-14 19:33:03.667: W/System.err(3305): http://www.google.co.jp/search?q=9ddbeb3a or 11-14 19
  • 节点:通过请求下载一个zip,Zip已损坏(Node: Downloading a zip through Request, Zip being corrupted)
    问题 我正在使用出色的Request库在Node中下载我正在使用的小型命令行工具中的文件。 Request非常适合拉入单个文件,完全没有问题,但不适用于ZIP。 例如,我正在尝试下载URL上的Twitter Bootstrap存档: http://twitter.github.com/bootstrap/assets/bootstrap.zip 该代码的相关部分是: var fileUrl = "http://twitter.github.com/bootstrap/assets/bootstrap.zip"; var output = "bootstrap.zip"; request(fileUrl, function(err, resp, body) { if(err) throw err; fs.writeFile(output, body, function(err) { console.log("file written!"); } } 我也尝试将编码设置为“二进制”,但是没有运气。 实际的zip约为74KB,但是通过上述代码下载时约为134KB,并在Finder中双击以提取它,我得到了错误: 无法将“引导程序”提取到“ nodetest”(错误21-是目录) 我觉得这是一个编码问题,但不确定从这里开始。 回答1 是的,问题出在编码上。 当您等待整个传输完成时,默认情况下
  • Python爬虫学习手册
    like:128-Python 爬取落网音乐 like:127-【图文详解】python爬虫实战——5分钟做个图片自动下载器 like:97-用Python写一个简单的微博爬虫 like:87-爬虫抓取拉勾网职位需求关键词,并生成统计图 like:87-Python爬虫实战(2):爬取京东商品列表 like:85-python爬虫入门(1):爬万本书籍 like:73-Python爬虫(六)--Scrapy框架学习 like:72-Python爬虫(一)--豆瓣电影抓站小结(成功抓取Top100电影) like:63-Python爬虫框架Scrapy快速入门 like:62-Scrapy爬取图片 like:60-使用Node.js制作爬虫教程(续:爬图) like:59-使用Scrapy爬取大规模数据 like:55-爬取简书全站文章并生成 API(一) like:49-教女朋友爬虫 like:48-60小时Python爬虫学习:从100行数据到10W+数据 like:48-Python爬虫(七)--Scrapy模拟登录 like:47-教你从零开始学会写爬虫(Python) like:46-基于MVP模式开发的带缓存网络爬虫,采用最流行框架搭建,干货多多 like:46-【图文详解】scrapy安装与真的快速上手——爬取豆瓣9分榜单 like:45-Python爬虫初学(三)——
  • 在服务器上调用Collection.insert时,“流星代码必须始终在光纤中运行”(“Meteor code must always run within a Fiber” when calling Collection.insert on server)
    问题 我在server / statusboard.js中有以下代码; var require = __meteor_bootstrap__.require, request = require("request") function getServices(services) { services = []; request('http://some-server/vshell/index.php?type=services&mode=json', function (error, response, body) { var resJSON = JSON.parse(body); _.each(resJSON, function(data) { var host = data["host_name"]; var service = data["service_description"]; var hardState = data["last_hard_state"]; var currState = data["current_state"]; services+={host: host, service: service, hardState: hardState, currState: currState}; Services.insert({host: host
  • 如何在iOS 8中使用Twitter Kit版本1.2.0请求权限来检索用户的电子邮件?(how to request permission to retrieve user's email using twitter kit version 1.2.0 in ios8?)
    问题 我通过遵循https://dev.twitter.com/twitter-kit/ios/configure this在我的ios应用程序中集成了twitter工具包。 身份验证后,我可以登录并轻松查看我的Twitter名称,但现在我想检索我的电子邮件地址,因此我使用了TWTRShareEmailViewController,它向用户提供了一个共享电子邮件视图,该视图返回null。 我浏览了他们提到的有关我的应用的文档,这些文档被列入白名单以请求电子邮件许可,并说要填写此表单https://support.twitter.com/forms/platform没有得到下一步做什么? 如何获得我的用户电子邮件权限? 建议任何帮助。 提前致谢。 回答1 我也没有找到要求将其列入白名单的特定表格。 我进入了他们的表单链接https://support.twitter.com/forms/platform,然后检查了“我有这些要点未涵盖的API政策问题”选项。 几天后,他们做出了回应,并询问了有关该应用程序及其应用程序ID的更多信息。 我实际上在等待他们的答案。 编辑: 因此,在几封包含support@fabric.io的电子邮件和一些错误之后,我终于被列入了白名单。 但是该选项当前不适用于Fabric,因此您必须在apps.twitter.com上创建一个Twitter应用程序。
  • pip安装:请检查该目录的权限和所有者(pip install: Please check the permissions and owner of that directory)
    问题 在安装pip和python时,我遇到了一个提示: 当前用户不拥有目录“ / Users / Parthenon / Library / Logs / pi”或其父目录,并且调试日志已被禁用。 请检查该目录的权限和所有者。 如果使用sudo执行pip,则可能需要-H标志。 因为我现在必须使用sudo进行安装。 我的Mac上已经安装了python和一些库,我正在运行Yosemite。 最近,我不得不进行彻底擦拭,然后重新安装操作系统。 现在,我收到此提示,并且在弄清楚如何更改它时遇到了麻烦 在我的命令行是Parthenon$现在是Philips-MBP:~ Parthenon$ 我是这台计算机的唯一所有者,这是计算机上的唯一帐户。 升级到python 3.4时,这似乎是一个问题,似乎什么都没在正确的地方,virtualenv不会到达我期望的位置,依此类推。 回答1 当我从运行pip变为sudo pip时,在Mac上也看到了这种变化。 在sudo中添加-H会导致该消息对我消失。 例如 sudo -H pip install foo man sudo告诉我-H使sudo将$HOME设置$HOME目标用户(在这种情况下为root)。 所以看来pip正在查看$HOME/Library/Log而sudo默认情况下并未将$HOME设置为/root/ 。 毫不奇怪, ~/Library
  • Where does the response get stored after a Dojo JSONP request?
    JavaScript For example, I have the following JavaScript code (Dojo 1.6 is already loaded): dojo.require("dojo.io.script") // PART I var jsonpArgs = { url: "http://myapp.appspot.com/query", content: { id: "1234", name: "Juan", start_date: "2000-01-01", callback: "recover" } }; // PART II dojo.io.script.get(jsonpArgs).then(function(data) { console.log(data); }); // PART III function recover(data) { console.log(data); } Direct query from browser I understand that my server will receive the query as though I typed the following into the address bar: http://myapp.appspot.com/query?id=1234&name=Juan
  • 一起学习Django框架(八)Ajax请求;分页器;form组件校验字段;form组件源码分析
    目录 Ajax一、什么是Ajax二、基于jQuery实现Ajax三、使用Ajax注意的问题四、Ajax上传文件五、Ajax上传JSON格式 分页器1、实验环境搭建2、分页实现2.1 分页器介绍2.2 分页效果 form组件1、介绍form组件2、form组件渲染页面的方式3、form组件渲染错误信息5、form组件的参数配置6、局部钩子7、全局钩子8、整合使用 form组件源码分析1、局部钩子源码2、全局钩子源码 简介: 在以往章节中,我们都是使用form表单进行请求提交的,在本章节我们将了解到一种新的提交请求的方式:Ajax。它是一种新的与后端交互的方式,我们一起来了解一下吧! Ajax 一、什么是Ajax AJAX(Asynchronous Javascript And XML)翻译成中文就是“异步Javascript和XML”。即使用Javascript语言与服务器进行异步交互,传输的数据为XML(当然,传输的数据不只是XML,现在更多使用json数据)。 同步交互:客户端发出一个请求后,需要等待服务器响应结束后,才能发出第二个请求; 异步交互:客户端发出一个请求后,无需等待服务器响应结束,就可以发出第二个请求。 AJAX除了异步的特点外,还有一个就是:浏览器页面局部刷新;(这一特点给用户的感受是在不知不觉中完成请求和响应过程) 例如: 我们并没有点击按钮提交
  • 在iOS中使用Twitter登录的用户…使用什么?(Login user with twitter in iOS… what to use?)
    问题 我知道以前曾问过类似的问题(我已经阅读了大多数问题),但是我还没有找到一个好的答案。 我需要使用iOS上的twitter登录/注册用户。 我已经在该网站上做了该网站(www.Meer.li),现在我也需要在应用程序中进行此操作。 我知道我可以在iOS设备上访问twitter用户名,并查看它是否在我的应用程序数据库中,但是当用户尚未注册www.Meer.li时如何处理? 抱歉,这是一个琐碎的问题,但是如果我应该使用iOS Social框架或使用某些OAuth库(Restkit等),我有点困惑。 希望有人可以指导我给出答案甚至是举个例子! 有待澄清: 非常感谢您的指导。 似乎合理。 可以肯定的是,这就是我理解要执行的步骤的方式: 1:用户单击带有Twitter按钮的登录 2:我们获得用户的Twitter帐户,并询问他要使用哪个帐户 3:我们使用您自己的应用程序和用户的Twitter信息的密钥和机密向Twitter发送请求 4:如果收到了良好的响应,请将接收到的信息发送到您创建用户的webapp上的方法,并从那里向twitter请求剩余的用户信息 5:让用户开心 那是对的吗? 为什么没有人以前对此流程进行过很好的记录? 听起来像应该很容易做到的事情。 回答1 注意: iOS 5+会为您处理所有OAuth和繁重的工作,因此,如果您支持较旧的OS版本,请仅使用此答案。
  • JSONP跨源错误“不存在Access-Control-Allow-Origin标头”(JSONP cross origin error 'No Access-Control-Allow-Origin header is present')
    问题 我正在使用Ajax使用其API从Twitter获取数据。 我正在尝试使用jsonp,从我能看到和理解的角度来看,我认为我所做的一切都正确(显然不是)。 <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"> </script> <script> $(document).ready(function () { $.ajax( { type: 'GET', datatype: 'jsonp', data: {}, crossDomain: 'true', url: "http://twitter.com/status/user_timeline/padraicb.json?count=10&callback=?", error: function(textStatus, errorThrown) { alert("error"); }, success: function(msg) { console.log(msg); } }); }); </script> 上面的代码在Chrome和Firefox中均生成错误 根据我的理解,我认为拥有&callback=? 并将类型设置为jsonp将使此操作成功。 更重要的是,我可以看到在提琴手中返回的JSON对象只是脚本没有处理。
  • No authentication challenges found while using twitter4j library
    I am currently working on integrating Twitter in my android application. I integrated it successfully to an extent. However I get the No authentication challenges found exception in following scenario. I use App-only authentication (without loging into twitter)to fetch the public feeds from twitter. I fetch them successfully. When I try to reply or retweet or mark it as favorite, I check if user is already logged in or not, if it is not logged-in then I try to login first and then do the reply or retweet. But I get above mentioned exception while trying to login only, so I don't reach the
  • 获取新的Twitter API使用者和密钥(Getting new Twitter API consumer and secret keys)
    问题 我正在一个Twitter项目上,我想在其中使用OAuth,但我不知道从何处获取使用者密钥和秘密密钥。 我怎样才能得到这些? 回答1 要获取消费者密钥和消费者秘密,您必须通过以下方式在Twitter中创建一个应用程序: https://developer.twitter.com/en/apps 然后,您将转到包含“消费者密钥和消费者秘密”的页面。 希望这些信息可以阐明Twitter的OAuth基本要点: 如果您还没有Twitter帐户,请创建一个访问“ https://apps.twitter.com”并按照要求的提示创建开发者项目(Twitter要求您回答一些问题才能批准您的帐户。在我看来,批准几乎是即时的。) 通过开发人员门户网站请求API密钥和机密会导致Twitter产生以下三件事: API密钥(这是您的“消费者密钥”) API秘密密钥(这是您的“消费者秘密”) 不记名令牌 接下来,访问开发人员门户的“身份验证令牌”区域,并生成“访问令牌和密码”。 这将为您提供以下两项: 访问令牌(这是您的“令牌密钥”) 访问令牌机密(这是您的“令牌机密”) 使用者密钥,使用者密钥,令牌密钥和令牌密钥应该足以进行Twitter API调用(对我而言)。 祝你好运! 回答2 登录“ Twitter开发人员”部分。 如果您还没有帐户,则可以使用常规的Twitter凭据登录转到“创建应用”
  • .NET中具有验证功能的OAuth(OAuth with Verification in .NET)
    问题 我正在尝试创建一个基于.NET的客户端应用程序(在WPF中-尽管目前我只是作为控制台应用程序来完成),以与支持OAuth的应用程序(特别是Mendeley(http:// dev (.mendeley.com),显然使用了三足式OAuth。 这是我第一次使用OAuth,开始使用它时遇到很多困难。 我已经找到了几个.NET OAuth库或帮助程序,但是它们似乎比我想的要复杂。 我要做的就是能够向Mendeley API发出REST请求并获得响应! 到目前为止,我已经尝试过: DotNetOpenAuth http://github.com/bittercoder/DevDefined.OAuth http://oauth.googlecode.com/svn/code/csharp/ 第一个(DotNetOpenAuth)似乎可以完成我需要的工作,如果我花了数小时来尝试如何做。 据我所知,第二和第三个不支持Mendeley发送回的验证码-尽管我对此可能是错的:) 我从Mendeley获得了一个用户密钥和机密,并且使用DotNetOpenAuth设法启动了一个带有Mendeley页面的浏览器,该页面提供了供用户输入应用程序的验证码。 但是,这时我迷路了,无法解决如何明智地将其提供回应用程序的问题。 我非常愿意承认,我不知道从哪里开始(尽管似乎有一个陡峭的学习曲线)
  • 使用R中的Twitter Streaming API的Oauth(使用RCurl)(Oauth with Twitter Streaming API in R (using RCurl))
    问题 我想使用R中的RCurl连接到Twitter的Streaming API,并且还能够过滤关键字。 但是,Twitter API v1.1中对授权的新限制使使用RCurl变得困难。 以前,代码可能会从以下页面进行如下操作: getURL("https://stream.twitter.com/1/statuses/filter.json", userpwd="Username:Password", cainfo = "cacert.pem", write=my.function, postfields="track=bruins") 但是现在,Twitter的新API正在使用户使用OAuth进行授权。 我有一个令牌和秘密,我只需要将其放在此代码中进行授权即可。 谢谢! 回答1 您可以使用ROAuth做到这ROAuth 。 我假设您已经在Twitter上注册了您的应用并拥有API密钥。 我将其与Stack Overflow上的其他问题(该问题及相关答案也包含指向其他贡献性问题的一些链接)以及软件包ROAuth和twitteR的文档拼凑而成。 library(RCurl) library(twitteR) library(ROAuth) requestURL <- "https://api.twitter.com/oauth/request_token" accessURL =
  • Twitter的Ruby三足授权(Twitter 3-legged authorization in Ruby)
    问题 我正在尝试将我的手红宝石放在铁轨上。 通常,我已经在Sinatra中编写了代码。 无论如何,这个问题可能与框架无关。 这个问题听起来可能是一个非常新手的问题。 我是第一次玩Twitter 1.1 API和OAuth。 我创建了一个应用XYZ,并在Twitter上注册了它。 我得到了XYZ的使用者密钥(即CONSUMER_KEY)和使用者秘密(即CONSUMER_SECRET)。 我还获得了XYZ自己的访问令牌(即ACCESS_TOKEN)和访问密码(即ACCESS_SECRET) XYZ应用程序类型:读取,写入和访问直接消息XYZ回调URL:http://www.mysite.com/cback并且我已经检查:允许使用该应用程序通过Twitter登录 我想做的很简单: 1)用户访问我的网站并单击链接Link your twitter account (不使用Twitter登录) 2)这将打开Twitter弹出窗口,在该弹出窗口中,用户授予XYZ代表其执行操作的权限 3)一旦用户允许并关闭弹出窗口,XYZ应用程序将获取用户的访问令牌和机密并保存在数据库中。 4)然后XYZ会使用该用户的令牌和密码来将来执行操作。 我可能很傻,这样的工作流程已经在数千个站点上实现,并且Twitter API文档解释了这种三足身份验证,但我仍然无法弄清楚。 我已阅读https://dev
  • SSL error using Python Requests to access Shibboleth authenticated server
    I'm trying to access a journal article hosted by an academic service provider (SP), using a Python script. The server authenticates using a Shibboleth login. I read Logging into SAML/Shibboleth authenticated server using python and tried to implement a login with Python Requests. The script starts by querying the SP for the link leading to my IDP institution, and is supposed then to authenticate automatically with the IDP. The first part works, but when following the link to the IDP, it chokes on an SSL error. Here is what I used: import requests import lxml.html LOGINLINK = 'https://www.jsave