关于AIR新浪登录测试
/**
*由于在应用申请中,我设置的域名属于新浪云,因此在本地测试的话肯定不能成功的,有个办法就是直接在新浪云那边授权成功后,将token的值直接使用post或者get方法传递过来,直接在本地
*localhost进行接收,这样本地的拿到之后可以直接拿着token去访问用户的资料。但是,这种做法肯定是有一定的危险性,只是在本地测试的时候这样干,上传到新浪云的话就没有必要这样做的.
*/
header('Content-Type: text/html; charset=UTF-8'); require_once("config.php");
require_once('saetv2.ex.class.php');
require_once('../sendEmail/mysqlInfo/sqlInfo.php'); $type="SINA"; //通过_GET方法拿到我们localhost访问本文件所需要的token
$token=$_GET['token'];
//经过测试,这样我们可以正常拿到我们所需要的token值。
//debug($token);
/**
*$c = new SaeTClientV2(WB_AKEY,WB_SKEY,$token);创建一个操作类,并传入token,通过get_uid()方法获取到当前用户的uid值,再通过掉用它的show_user_by_id($uid)方法来获取当前用户的基本资料。
*/ $c = new SaeTClientV2(WB_AKEY,WB_SKEY,$token);
$uid=$c->get_uid()['uid']; //经过测试并能够成功获取到用户的基本资料。
//debug($c->show_user_by_id($uid));
/**
*在一般应用程序开发中,只使用sdk中的用户的基本信息,以及sdk中的信息分享那块。
*在本次的游戏设置中,我只打算使用uid、新浪用户名、text以及图片文件或者网页文件的分享。
*因此,在使用数据库注册的时候,值使用用户基本信息表中的uid项。
*/ //连接到数据库
$con=@mysql_connect(DB_USER,DB_ROOT,DB_PWD)or die('信息错误');
//选择数据表
mysql_select_db(DB_NAME,$con)or die('信息错误');
mysql_query('SET NAMES UTF8') or die('信息错误'); //首先查询是否当前用户已经在数据表中进行注册,如果没有注册的话就进行uid注册,否则的话就直接去登录。
$sql ="SELECT * FROM user_information WHERE third_uid='{$uid}'"; $result = mysql_query($sql,$con);
$source=mysql_fetch_array($result);
if($source){
//登录
}else{
//数据库写入成功
$information=$c->show_user_by_id($uid); $name=$information['name']; //获取新浪用户名
$photo=$information['profile_image_url']; //获取新浪头像
$sex=$information['gender']; //获取用户性别 $query="INSERT INTO user_information (user_name,user_sex,user_photo,third_uid,third_type) VALUES ('$name','$sex','$photo','$uid','$type')";
$row=@mysql_query($query) or die('信息错误');
}
mysql_close(); ?> <!--关于Javascript与AIR通信:由于php在AIR端使用的是HtmlLoader类进行加载页面的,因此,使用php与AS3.0暂且无法通信,只能使用javascript进行通信。那么,在通信过程中遇到的几个问题: 1.AIR通信不能再使用ExternalInterface类进行as与js通信。Error: Error #2067: The ExternalInterface is not available in this container. ExternalInterface requires Internet Explorer ActiveX, Firefox, Mozilla 1.7.5 and greater, or other browsers that support NPRuntime.
2.在使用AIR中的HtmlLoader.window对象和Javascript通信时,注意的地方就是:
(1).AS3.0 :this.htmlloader.window.functionName = functionName; private function functionName(msg:Stirng):void{//方法在定义过程中可以有javascript传递的参数类型定义或者可以没有,但是必须要保持和javascript端方法接口一致。}
(2).JS : 按道理来说我直接可以使用html中的body标签的onload属性直接去调用javascript中定义的方法,然后再使用这个js方法去调用AS3.0中的方法,但是我测试失败了,这个好郁闷哦。因此我使用的是button中的onClick属性去触发js方法然后去调用AS3.0的方法。并直接传递参数。
(3).application域问题:根据api解释应该是:当我们加载的html文件来自和我们使用的包含HtmlLoader类的swf文件的程序域不同的情况下,则程序默认本页面的程序域为本程序的程序域。那么我们还是最好加上htmlloader.runtimeApplicationDomain = ApplicationDomain.currentDomain;
--> <!doctype html> <html>
<head>
<title></title>
<script type="text/javascript">
var msg=<?php echo $uid;?>;
function confirmToLogin(){
getString(msg);
}
</script>
</head>
<body> <input type="button" value="返回到程序" onClick="confirmToLogin()"/>
</body>
</html>
as3.0测试端:
package
{ import flash.display.MovieClip;
import flash.html.HTMLLoader;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLVariables;
import flash.net.URLRequestMethod;
import flash.net.URLLoaderDataFormat; public class AirtoJS extends MovieClip
{
private var l:HTMLLoader=new HTMLLoader();
private var uid:String="";
private var r:URLRequest = new URLRequest("http://localhost:8081/feiruo/chinesechessgame/php/sinalogin/index.php"); public function AirtoJS()
{
l.runtimeApplicationDomain = ApplicationDomain.currentDomain;
l.load(r);
l.width = stage.stageWidth;
l.height = stage.stageHeight;
this.addChild(l);
l.addEventListener(Event.COMPLETE,loaded);
}
private function loaded(e:Event):void
{
this.l.window.getString = getString;
}
private function getString(msg:String):void
{
this.uid=msg;
this.removeChild(this.l);
this.l=null;
this.r=null;
loginBySina();
}
private function loginBySina():void{
var _r:URLLoader=new URLLoader();
var _v:URLVariables=new URLVariables();
var _u:URLRequest=new URLRequest("http://localhost:8081/feiruo/chinesechessgame/php/sinalogin/sina.php");
_v.uid=this.uid;
_u.method=URLRequestMethod.POST;
_r.dataFormat = URLLoaderDataFormat.VARIABLES;
_u.data=_v;
_r.load(_u);
_r.addEventListener(Event.COMPLETE,loadedHd);
}
private function loadedHd(e:Event):void{
trace("feiruo");
trace(e.target.data);
}
} }
关于AIR新浪登录测试的更多相关文章
- Java 模拟新浪登录 2016
想学习一下网络爬虫.涉及到模拟登录,查阅了一番资料以后发现大部分都有点过时了,就使用前辈们给的经验,Firefox抓包调试,採用httpclient模拟了一下新浪登录. 不正确之处多多包括.须要的能够 ...
- 将php代码部署到新浪云测试(简单方法,包含数据库的连接)
很多人做项目都是先在本地测试然后上传到服务器运行,如果包含了操作数据库的信息往往需要进行一番调试,这里我总结一下把php代码包含数据库的连接如何上传到新浪云服务器的步骤. 1.在新浪云应用SAE的控制 ...
- QQ 微信 新浪 无法 分享 收集
1.网络请求报错.升级Xcode 7.0发现网络访问失败.输出错误信息 The resource could not be loaded because the App Transport Secur ...
- Python如何调用新浪api接口的问题
前言:这些天在研究如何调用新浪开放平台的api分析新浪微博用户的数据 成果:成功调用了新浪api获取了用户的一些个人信息和无数条公共微博 不足:新浪开放平台访问有限制,返回的数据着实有限,不足以分析问 ...
- VC POST表单——登录验证新浪邮箱
1.本机环境: Windows XP SP3.ADSL 2.开发工具: WildPackets OmniPeek V5.1.4 Visual C++ 6.0 IE6.0 FlexEdit V2.3.1 ...
- 微信qq,新浪等第三方授权登录的理解
偶们常说的第三方是指的微信,qq,新浪这些第三方,因为现在基本每个人都有qq或者微信,那么我们就可以通过这些第三方进行登录.而这些网站比如慕课网是通过第三方获取用户的基本信息 它会有个勾选按钮,提示是 ...
- 【公众号】微信第三方登录(静默授权和非静默授权)(具体代码:U盘 新浪云SAE)
一.微信联合登录是怎么登录的,有几种登录方式:微信联合登录和微信授权登录[授权登录(非静默授权)与静默授权] [主动授权]:需要用户确认登录,这样可以通过用户的个人确认,获取用户全面的信息,无论是否关 ...
- tp5集成淘宝,微信,网易,新浪等第三方登录
tp5集成淘宝,微信,网易,新浪等第三方登录 一.总结 一句话总结: 接口 链接 实现的话就是这些平台给的一个接口(链接),你通过这些接口登录进去之后,它会给你返回用户名,头像之类的信息,我们的网站存 ...
- 调用新浪短地址转换api的一个测试
import base64 import requests url="http://www.~~~~.com" headers={ "User-Agent":& ...
随机推荐
- quotas and disk replace on netapp
==================================================================================================== ...
- 解决 SQLite数据库 no current row
场景: SQLite数据库,在查询数据时,提示 标题错误异常.查看堆栈,是在SQLiteDataReader.CheckValidRow 时报错. 数据查询是通过 adapter.Fill(dt) 进 ...
- (二)java特征
java的核心是面向对象,与之相对的是面向过程的编程,在对整个java编程没有足够的理解和运用的情况下恐怕没办法很好的理解这两个概念. 在我的初步理解中,写一个程序就例如做一件事情,面向过程的 ...
- 【转】c#实现文件下载
需求:点击SAVE,去ajax去后台下载文件,完成后出现保存对话框,然后直接下载. 解决方案:下载完成后用JS转到向到另一个页面,在这页面Page_Load里用C#Response对象直接下载. 下载 ...
- 2. hdfs
一.Hdfs的shell 所有hadoop的fs的shell均用uri路径作为参数 uri格式:schema://authority/path.hdfs的schema是hdfs.其中,schema和a ...
- CentOs of Tomcat commands
1.启动tomcat 进入tomcat目录的bin目录下 执行 [root@iZ253lxv4i0Z bin]# ./startup.sh Using CATALINA_BASE: /usr/loca ...
- PLSQL_闪回操作3_Fashback Transaction Query
2014-12-09 Created By BaoXinjian
- hdu 1561 The more, The Better 背包型树形DP 简单题
The more, The Better Time Limit: 6000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Oth ...
- win764上vs2010+opencv2.4.11安装配置
1:准备工作 1)opencv的官网下载你所要版本的opencv库文件,运行安装解压到自定义的一个文件夹里(D:\Program Files). 2)安装vs2010. 二:配置 1.计算机环境变量: ...
- windows环境下 生成git公钥和私钥
windows环境下 生成公钥和私钥 上传代码到远程仓库的时候需要秘钥进行验证是否本人上传的.打开Git目录下的Git Bash 输入ssh-keygen,回车 可直接不输入路径,使用默认路径(c/U ...