关于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":& ...
随机推荐
- android学习笔记47——读写SD卡上的文件
读写SD卡上的文件 通过Context的openFileInput.openFileOutput来打开文件输入流.输出流时,程序打开的都是应用程序的数据文件夹里的文件,其存储的文件大小可能都比较有限- ...
- 【freemaker】之循环,判断,对象取值
entity: public class Employee { private Integer id; private String name; private Integer age; privat ...
- [tty与uart]1.Linux中tty框架与uart框架之间的调用关系剖析
转自:http://developer.51cto.com/art/201209/357501_all.htm 目录 1.tty框架 2.uart框架 3.自底向上 4.自顶向下 5.关系图 在这期间 ...
- OkHttp 源码分析
在工作中用到封装HTTP传输的OkHTTP,OkHttp是相对成熟的解决方案,同时也是开源项目.本文将从源码角度看下OkHttp是如何实现一些网络操作的. HTTP GET: OkHttpClient ...
- objective-c中自己创建的对象为什么不能调用release
dealloc方法,本就不应该手动调用. 你自己创建的对象,看你代码怎么写的了.例子:NSString *str1 = [NSString stringWithString:@"abc&qu ...
- NeHe OpenGL教程 第十六课:雾
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- 用widthStep的方法来增加某范围的像素----与imageROI对比
//用widthStep的方法来增加某范围的像素 //作者:sandy //时间:2015-10-5 #include <cv.h> #include <highgui.h> ...
- poj 1011 Sticks
Sticks Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 126238 Accepted: 29477 Descrip ...
- Studio--代理设置(SDK下载代理设置)
为啥Android Studio有代理一说呢.比如我们要下载某个插件,但是这个插件又被tc墙了,所以这个时候需要FQ才能安装.FQ其中的一种方式就是使用VPN,配置如下图: 输入VPN的IP和PORT ...
- gridView--GridView关于间距的属性值介绍
android:columnWidth 设置列的宽度.关联的方法为:setColumnWidth(int) android:gravity 设置此组件中的内容在组件中的位置.可选的值有:top.b ...