【第三方登录】Twitter
创建应用
APPID 和 相关回调配置
重新设置api key 和 api secret
设置回调和网址 还有 APP的类型
拿到ClientID 和 Client Secret
源码实现
- 获取Twitter 的登录地址
public function twitterUrl()
{global $db,$request,$comId;require "inc/twitter_client/twitteroauth.php"; // Create TwitterOAuth obj instance$twitteroauth = new \TwitterOAuth('配置 API key', '配置 API Key Secret');// Requesting authentication tokens, the parameter is the URL we will be redirected to$redirectUrl = 'https://tocmodels.com/Twitter';$request_token = $twitteroauth->getRequestToken($redirectUrl);// save to mysql 记录token和token_secret$log = array('oauth_token' => $request_token['oauth_token'],'oauth_token_secret' => $request_token['oauth_token_secret'],'status' => 0,'user_id' => 0,'screen_name' => '','dtTime' => date("Y-m-d H:i:s"));$db->insert_update("twitter_token_log", $log, "id");// no errorif($twitteroauth->http_code==200){// Let's generate the URL and redirect$loginUrl = $twitteroauth->getAuthorizeURL($request_token['oauth_token']); $return['code'] = 1;$return['message'] = '获取成功';$return['data'] = array();$return['data']['url'] = $loginUrl;return json_encode($return,JSON_UNESCAPED_UNICODE); } else {// errorreturn '{"code":0,"message":"Get Twitter login url fail!"}';}
}
- 回调跳转链接上有两个参数
oauth_verifier
和oauth_token
,通过两个值获取用户标识
public function twitterLogin(){global $db,$request,$comId;require "inc/twitter_client/twitteroauth.php"; $oauth_verifier = $request['oauth_verifier'];if(empty($oauth_verifier)) return '{"code":0,"message":"oauth_verifier 为必传参数"}'; $oauth_token = $request['oauth_token'];if(empty($oauth_token)) return '{"code":0,"message":"oauth_token 为必传参数"}'; $log = $db->get_row("select * from twitter_token_log where oauth_token = '$oauth_token' and status = 0 ");if(!$log) return '{"code":0,"message":"无效的 oauth_token "}'; $oauth_token_secret = $log->oauth_token_secret;//api key 和 api key secret$twitteroauth = new \TwitterOAuth('配置 api key', 'api key secret ', $oauth_token, $oauth_token_secret);$access_token = $twitteroauth->getAccessToken($oauth_verifier); $twitter_uid = $access_token['user_id'];//Twitter 的用户id$screen_name = $access_token['screen_name'];//Twitter 的用户 名称$user = $db->get_row("select * from users where twitter_uid = '$twitter_uid' ");//TODO 剩下就是存入自己的数据和登录逻辑}
相关文章:
【第三方登录】Twitter
创建应用 APPID 和 相关回调配置 重新设置api key 和 api secret 设置回调和网址 还有 APP的类型 拿到ClientID 和 Client Secret 源码实现 获取Twitter 的登录地址 public function twitterUrl() {global $db,$request,$comId;require "inc/twitter_client/twitte…...
C++经典面试题目(十七)
1、请解释拷贝构造函数的作用,并说明其调用时机。 拷贝构造函数是一种特殊的构造函数,用于创建一个新对象,其内容与另一个对象相同。它将一个已存在的对象作为参数,并使用该对象的值来初始化新创建的对象。拷贝构造函数的调用时机…...
DFS2 C++
一、指数型枚举 1、题目: 从 1∼n1∼ 这 n 个整数中随机选取任意多个,输出所有可能的选择方案。 输入格式 输入一个整数 n。 输出格式 每行输出一种方案。 同一行内的数必须升序排列,相邻两个数用恰好 11 个空格隔开。 对于没有选任何…...
2021-08-06
yarn的简介: Yarn是facebook发布的一款取代npm的包管理工具。 yarn的特点: 速度超快。 Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。 在执行代码…...
Centos服务器Open Gauss 部署
近期很多的项目由于信创要求使用一些国产的数据库,比如OpenGauss。OpenGuass是华为高斯DB的开源版,内核还是PostgreSQL,商业版是收费的。这里记录一下是如何安装部署 的。 官方中文文档 官方下载地址 部署要求 操作系统要求 ARMÿ…...
Vue与Electron融合之道:从Web App到桌面App的华丽转身
Vue与Electron融合之道:从Web App到桌面App的华丽转身 引言Vue 与 Electron 的天然契合共享技术栈高效开发与部署用户体验升级 Vue 与 Electron 融合实战初始化项目调整Vue项目结构利用 Electron API 增强功能定制桌面应用外观构建与部署 结语 引言 Vue.js 作为一款…...
Higress 基于自定义插件访问 Redis
作者:钰诚 简介 基于 wasm 机制,Higress 提供了优秀的可扩展性,用户可以基于 Go/C/Rust 编写 wasm 插件,自定义请求处理逻辑,满足用户的个性化需求,目前插件已经支持 redis 调用,使得用户能够…...
Mysql的库函数
MySQL是一个流行的开源关系型数据库管理系统,它提供了大量的内置库函数,用于在查询时执行各种操作。这些函数可以帮助开发者在数据检索、转换和处理过程中实现更复杂的逻辑。 1 字符串函数 函数描述ASCII(s)返回字符串 s 的第一个字符的 ASCII 码。CHA…...
绿联 安装onlyoffice容器并启用Cloudreve的office在线预览与编辑功能
原文:绿联 安装onlyoffice容器并启用Cloudreve的office在线预览与编辑功能 本篇教程以配合Cloudreve扩展文档预览/编辑为目的编写,OnlyOffice的其他用途未深入研究也不做探讨,仅使用WOPI能力。 硬件要求 镜像大小:2.91Gb或更大 …...
金钱卦起卦
前言 本文目的: 1.了解什么是《易经》 2.了解什么是八卦/六十四卦 3.金钱卦起卦方法 4.如何解卦 一、什么是易经? 1、易经就是一本书、一本著作 2、它的成书经历了三个阶段 第一阶段:在5000多年前,由人类的始祖伏羲通过观察时…...
学透Spring Boot 003 —— Spring 和 Spring Boot 常用注解(附面试题和思维导图)
这是 学透 Spring Boot 专栏 的第三篇,欢迎关注我,与我一起学习和探讨 Spring Boot 相关知识,学透 Spring Boot。 从面试题说起 今天我们通过一道和Spring Boot有关的常见面试题入手。 面试题:说说 Spring Boot 中有哪些常用注解…...
新能源汽车充电桩常见类型及充电桩站场的智能监管方案
随着新能源汽车市场的迅猛发展,充电桩作为支持其运行的基础设施,也呈现出多样化的类型。这些充电桩不仅在外形和功能上存在差异,更在充电速度、充电方式以及使用场景等方面展现出独特的优势。 一、充电桩类型及区别 1、慢充桩(交…...
让工作自动化起来!无所不能的Python
文章目录 前言一、Python是办公自动化的重要工具二、Python是提升职场竞争力的利器三、Python是企业数字化的重要平台四、Python是AI发展的重要通道之一编辑推荐内容简介作者简介目录前言为什么要写这本书 读者对象如何阅读本书赠书活动 前言 随着我国企业数字化和信息化的深入…...
Facebook轮播广告是什么?投放过程中有哪些需要注意的吗?
轮播广告是Facebook广告形式中的一种,可以把3—5个广告合并到一个可滚动的广告单元中。轮播广告会出现在新鲜事即News Feed中,是独立站卖家常用的一种广告形式 为什么选择轮播广告? 转化率更高:相较于单图广告,轮播广…...
3、jvm基础知识(三)
如何判断堆上的对象没有被引用? 常见的有两种判断方法:引用计数法和可达性分析法。 引用计数法会为每个对象维护一个引用计数器,当对象被引用时加1,取消引用时减1。 引用计数法的优点是实现简单,缺点有两点࿱…...
leetcode414-Third Maximum Number
这道题目求第三大数,如果第三大数不存在则返回最大数,且该数字最大值不超过2^31-1。从这个提示上就可以看出这个数字是用int类型表示的。我们当然可以通过排序的方式先给数组排序然后很容易的就能求解。但是有没有什么更好的办法呢?对于数组来…...
解决Quartus与modelsim联合仿真问题:# Error loading design解决,是tb文件中没加:`timescale 1ns/1ns
解决Quartus与modelsim联合仿真问题:# Error loading design解决,是tb文件中没加:timescale 1,一直走下来,在modelsim中出现了下面问题2,rtl文件、tb文件2.1,rtl代码2.2,tb测试2.3&a…...
vue使用elementui组件的的对话框;使用ref
1.第一步,先在父组件中引用,设置ref的值 <el-dialog :visible.sync"dialogEditVisible"append-to-body width"1000px" title"编辑":close-on-click-modal"false"><dialog-edit v-if"dialogEditV…...
第十四届蓝桥杯(八题C++ 题目+代码+注解)
目录 题目一(日期统计 纯暴力): 代码: 题目二(01串的熵 模拟): 代码: 题目三(治炼金属): 代码: 题目四(飞机降落 深度…...
HTTP协议格式详解之报头(HTTP header)、请求正文(body)
在之前文章中我们已经介绍了HTTP的首行信息,HTTP协议格式详解之首行信息解析-CSDN博客这篇文章中我们继续介绍HTTP协议的报头部分。 一、报头(HTTP header) a)请求头部(Request Headers): Host:指定服务器…...
[yolox]ubuntu上部署yolox的ncnn模型
首先转换pytorch->onnx->param模型,这个过程可以查资料步骤有点多,参考blog.51cto.com/u_15660370/6408303,这里重点讲解转换后部署。 测试环境: ubuntu18.04 opencv3.4.4(编译过程省略,参考我其他博客) 安装…...
YOLOv9改进策略 :IoU优化 | 提出一种新的Shape IoU,更加关注边界框本身的形状和尺度,对小目标检测也很友好
💡💡💡本文改进:一种新的Shape IoU方法,该方法可以通过关注边界框本身的形状和尺度来计算损失,解决边界盒的形状和规模等固有属性对边界盒回归的影响。 💡💡💡对小目标检测涨点明显,在VisDrone2019、PASCAL VOC均有涨点 《YOLOv9魔术师专栏》将从以下各个方向进…...
如何使用KST指标进行多头交易,Anzo Capital一个条件设置
在之前的文章中,我们进行分享了以下知识:什么是KST指标,以及如何进行计算KST指标。有聪明的投资者就在后台进行咨询Anzo Capital昂首资本了,我们知道这些知识有什么用呢? 当然有用了,只要理解背后的逻辑知…...
【QT进阶】第十三章QT动画类的使用QAbstractAnimation
❤️作者主页:凉开水白菜 ❤️作者简介:共同学习,互相监督,热于分享,多加讨论,一起进步! ❤️专栏目录:【零基础学QT】文章导航篇 ❤️专栏资料:https://pan.baidu.com/s/192A28BTIYFHmixRcQwmaHw 提取码:qtqt ❤️点赞 👍 收藏 ⭐再看,养成习惯 订阅的粉丝可通过…...
【机器学习】揭秘无监督学习:机器如何自我学习发现数据奥秘
无监督学习:全面解析 引言 在机器学习的众多分支中,无监督学习因其在未标记数据上发现隐藏模式的能力而独树一帜。它不依赖于事先标记的输出,而是通过分析数据本身的结构和分布来揭示内在的关系和分类。本文深入探讨无监督学习的核心概念、…...
鸿蒙(HarmonyOS)ArkTs语言基础教程(大纲)
鸿蒙(HarmonyOS)ArkTs语言基础教程 简介 ArkTS 是鸿蒙生态的应用开发语言。它在保持 TypeScript(简称 TS)基本语法风格的基础上,对 TS 的动态类型特性施加更严格的约束,引入静态类型。同时,提…...
掌握未来商机:如何利用会话式AI赢在起跑线
AI智能助手:提升工作效率的秘密武器 在这个信息爆炸的时代,内容策略成为了品牌与用户之间沟通的重要桥梁。一个有效的内容策略能够帮助品牌提升知名度,建立与目标受众的深度连接,并最终实现转化目标。内容策略不仅涉及内容的创作与…...
软考高级架构师:数据传输控制方式:程序控制方式、程序中断方式、DMA方式、通道方式、IO处理机
作者:明明如月学长, CSDN 博客专家,大厂高级 Java 工程师,《性能优化方法论》作者、《解锁大厂思维:剖析《阿里巴巴Java开发手册》》、《再学经典:《Effective Java》独家解析》专栏作者。 热门文章推荐&am…...
大模型之路2:继续趟一条小路
继续趟一条小路,可谓是充满了曲折,当然,必不可少的还是坑。 吐槽 看过的喷友,其实你看完以后,大概率也就是和我一起骂骂街,因为....我也的确没理清楚。 我也不知道做错了什么,就是运行不过去…...
打造安全医疗网络:三网整体规划与云数据中心构建策略
医院网络安全问题涉及到医院日常管理多个方面,一旦医院信息管理系统在正常运行过程中受到外部恶意攻击,或者出现意外中断等情况,都会造成海量医疗数据信息的丢失。由于医院信息管理系统中存储了大量患者个人信息和治疗方案信息等,…...
用css做网站菜单/搜索引擎营销方案例子
pycharm使多行代码同时缩进 鼠标选中多行代码后,按下Tab键,一次缩进四个字符...
专做蓝领招聘网站有哪些/网络推广营销软件
对于Java开发者来说,Spring无疑是最常用也是最基础的框架之一。(此处省略1w字吹Spring)。相信很多同行跟我一样,只是停留在会用的阶段,比如用Component写一个组件、用Autowired注入其他组件等等,但是不知道…...
福州网站建设推广公司/谷歌浏览器网页版入口
算数运算: 1、运算符罗列: 算数运算符:【】、【-】、【*】、【/】、【%】、【】、【--】 赋值运算符:【】、【】、【-】、【*】、【/】、【%】、【.】 比较运算符:【>】、【<】、【】、【>】、【<】、【&a…...
网站怎么做图片搜索/百度快速排名化
下面的文章讲解了如何为Cassandra设置登录密码:(操作的环境为Linux 下的 Cassandra , Windows 下面存在一些问题, 不知道怎么解决, cqlsh 不能登录) 0.修改配置文件 cassandra.yaml,把 authenticator: AllowAllAuthenticator改为authenticator: Passwor…...
wordpress查询数据库插件/制作网站要花多少钱
RasterIO的用法参考: 在MFC项目中添加一个对话框DlgFastShow,添加一个按钮 ,在头文件中添加如下代码: 1 public: 2 GDALDataset* m_pDataset; 3 double m_dScale; //现有图框与图像的比值 4 5 int m_iMi…...
出口网站有哪些/互联网舆情监测系统
Pytorch官方文档:https://pytorch.org/docs/stable/torch.html? 1. 写在前面 今天开始,兼顾Pytorch学习, 如果刚刚接触深度学习并且想快速搭建神经网络完成任务享受快感,当然是Keras框架首选,但是如果想在深度学习或…...