php有道翻译api调用方法

 更新时间:2016年11月25日 17:24  点击:1978
下面我来给各位朋友推荐一个php有道翻译api调用方法,这里我们利用了file_get_contents函数直接读取由api返回的数据进行处理了,希望此例子对大家会有所帮助。

调用之前我们需申请一个有道翻译API数据接口的key,地址如

http://fanyi.youdao.com/openapi?path=data-mode

方法说明,数据接口

http://fanyi.youdao.com/openapi.do?keyfrom=<keyfrom>&key=<key>&type=data&doctype=<doctype>&version=1.1&q=要翻译的文本

参数说明:

type - 返回结果的类型,固定为data

doctype - 返回结果的数据格式,xml或json或jsonp

version - 版本,当前最新版本为1.1

q - 要翻译的文本,不能超过200个字符,需要使用utf-8编码

errorCode:

0 - 正常

20 - 要翻译的文本过长

30 - 无法进行有效的翻译

40 - 不支持的语言类型

50 - 无效的key


例子

 代码如下 复制代码

$url = "http://fanyi.youdao.com/openapi.do?keyfrom=xujiangtao&key=1490852988&type=data&doctype=json&version=1.1&q=".$content; 
$list = file_get_contents($url);  www.111cn.net
$js_de = json_decode($list,true); 

注意:
使用API key 时,请求频率限制为每小时1000次,超过限制会被封禁。
如果您的应用确实需要超过每小时1000次请求,请与 translate-service@corp.youdao.com 联系。 并提供您的应用的详细信息(名称、功能、网站地址、使用API的方式、API key、预计访问频率、是否商业行为、截屏等等) 以及该应用访问有道翻译API时所使用的服务器IP,审核通过后可放宽访问限制。

今天在调试腾讯微博接口时,出现一个错误,找了网上都没有相关资料,最后自己调通了,故发布此博文,避免各位phper重复造轮子。

错误信息:

 代码如下 复制代码

stdClass Object
(
    [data] =>
    [detailerrinfo] => stdClass Object
        (
            [accesstoken] =>
            [apiname] => www.111cn.net
            [appkey] => 801485800
            [clientip] => 112.193.138.133
            [cmd] => 0
            [proctime] => 0
            [ret1] => 3
            [ret2] => 3
            [ret3] => 102
            [ret4] => 3659629834
            [timestamp] => 1394436892
        )

    [errcode] => 102
    [msg] => missing parameter
    [ret] => 3
    [seqid] => 1394436894
)


在腾讯微博开放平台的官方资料中,未发现解释此错误代码102的开发文档。经过与腾讯微博PHP SDK对比后发现少了一个参数。

解决错误代码102的办法
在请求用户资料的参数中oauth_version是必填的,而且在OAuth2中,它的值必须为2.a。

请求的参数中,OAuth2部分需包含:

字段 说明

 代码如下 复制代码

oauth_consumer_key appkey
access_token 授权获得的accesstoken
openid 授权获取的openid
clientip 客户端的ip
oauth_version 版本号,必须为2.a
scope 请求权限范围(默认“all”)

Drupal 腾讯微博登录实例代码
$http = drupal_http_request(url('https://open.t.qq.com/api/user/info', array(
  'query' => array(
    'access_token' => $access_token,
    'oauth_consumer_key' => $provider['key'],
    'openid' => $_GET['openid'],
    'clientip' => ip_address(),
    'scope' => 'all',
    'seqid' => REQUEST_TIME,
    'serverip' => $_SERVER['SERVER_ADDR'],
    'oauth_version' => '2.a',
    //'appfrom' => 'php-sdk2.0beta',
  ),
)));

注意:

加上字段后需要重新从登录页面重新授权一次,不然会出现错误“check sign error” 错误代码36。


以下重复刷新接口导致的签名错误返回值:

 代码如下 复制代码

stdClass Object
(
    [data] =>
    [detailerrinfo] => stdClass Object
        (
            [accesstoken] =>
            [apiname] => weibo.user.info
            [appkey] => 801485800
            [clientip] => 112.193.138.133
            [cmd] => 0
            [proctime] => 0
            [ret1] => 3
            [ret2] => 3
            [ret3] => 36
            [ret4] => 2636350730
            [timestamp] => 1394437225
        )

    [errcode] => 36
    [msg] => check sign error
    [ret] => 3
    [seqid] => 1394437227
)

获取腾讯微博用户资料
获取当前登录用户的个人资料 user/info 接口返回值的字段说明:

 代码如下 复制代码
{
 errcode : 返回错误码,
 msg : 错误信息,
 ret : 返回值,0-成功,非0-失败,
 data :
 {
  birth_day : 出生天,
  birth_month : 出生月,
  birth_year : 出生年,
  city_code : 城市id,
  comp :
  {
   begin_year : 开始年,
   company_name : 公司名称,
   department_name : 部门名称,
   end_year : 结束年,
   id : 公司id
  },
  country_code : 国家id,
  edu : 教育信息
  {
   departmentid : 院系id,
   id : 教育信息记录id,
   level : 学历级别,
   schoolid : 学校id,
   year : 入学年
  },
  fansnum : 听众数,
  favnum : 收藏数,
  head : 头像url,
  homecity_code : 家乡所在城市id,
  homecountry_code : 家乡所在国家id,
  homepage : 个人主页,
  homeprovince_code : 家乡所在省id,
  hometown_code : 家乡所在城镇id,
  idolnum : 收听的人数,
  industry_code : 行业id,
  introduction : 个人介绍,
  isent : 是否企业机构,
  ismyblack : 是否在当前用户的黑名单中,0-不是,1-是,
  ismyfans : 是否是当前用户的听众,0-不是,1-是,
  ismyidol : 是否是当前用户的偶像,0-不是,1-是,
  isrealname : 是否实名认证,1-已实名认证,2-未实名认证,
  isvip : 是否认证用户,0-不是,1-是,
  location : 所在地,
  mutual_fans_num : 互听好友数,
  name : 用户帐户名,
  nick : 用户昵称,
  openid : 用户唯一id,与name相对应,
  province_code : 地区id,
  regtime : 注册时间,
  send_private_flag : 是否允许所有人给当前用户发私信,0-仅有偶像,1-名人+听众,2-所有人,
  sex : 用户性别,1-男,2-女,0-未填写,
  tag : 标签
  {
   id : 个人标签id,
   name : 标签名
  },
  tweetinfo : 最近的一条原创微博信息
  {
   city_code : 城市码,
   country_code : 国家码,
   emotiontype : 心情类型,
   emotionurl : 心情图片url,
   from : 来源,
   fromurl : 来源url,
   geo : 地理位置信息,
   id : 微博唯一id,
   image : 图片url列表,
   latitude : 纬度,
   location : 发表者所在地,
   longitude : 经度,
   music : 音频信息
   {
    author : 演唱者,
    url : 音频地址,
    title : 音频名字,歌名
   },
   origtext : 原始内容,
   province_code : 省份码,
   self : 是否自已发的的微博,0-不是,1-是,
   status : 微博状态,0-正常,1-系统删除,2-审核中,3-用户删除,4-根删除,
   text : 微博内容,
   timestamp : 服务器时间戳,不能用于翻页,
   type : 微博类型,1-原创发表,2-转载,3-私信,4-回复,5-空回,6-提及,7-评论,
   video : 视频信息
   {
    picurl : 缩略图,
    player : 播放器地址,
    realurl : 视频原地址,
    shorturl : 视频的短url,
    title : 视频标题
   }
  },
  tweetnum : 发表的微博数,
  verifyinfo : 认证信息,
  exp : 经验值,
  level : 微博等级
 },
 seqid : 序列号
}

剩下的事就非常容易了,处理你自己程序部分的逻辑业务。

 

WebQQ协议更新后,原登陆算法等信息改变,导致很多盆友无法正常登陆,本站发布了一些与WebQQ最新登陆协议相关的文章,有因为未发布Demo,一些盆友会加Q来问,是否适应最新的WebQQ,小编就做了一个小的Demo来供大家测试。

声明

1、本Demo做的比较简单,未对密码及验证码等对错做验证,只是做登陆演示。

2、QQ是个比较隐私的东西,那么请您用测试号登陆本软件,先小人后君子吧。

本站与最新WebQQ登陆协议相关文章

WebQQ二次登陆失败{“retcode”:103,”errmsg”:”"}

解决办法

重新抓了一次包,发现现在WebQQ将登陆加入SSL层也就是Https在第一次登陆的时候,返回的数据如下:

 代码如下 复制代码

ptuiCB('0','0','http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin=你的QQ号&service=login&nodirect=0&ptsig=一串加密数据s_url=http%3a%2f%2fweb2.qq.com%2floginproxy.html%3flogin2qq%3d1%26webqq%5ftype%3d10&f_url=&ptlang=2052&ptredirect=100&aid=1003903&daid=164&j_later=0&low_login_hour=0&regmaster=0','0','登录成功!', 'I');

上述数据中包含一个回调地址:

 代码如下 复制代码

<a href="http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin">http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin</a>=你的QQ号&service=login&nodirect=0&ptsig=一串加密数据s_url=http%3a%2f%2fweb2.qq.com%2floginproxy.html%3flogin2qq%3d1%26webqq%5ftype%3d10&f_url=&ptlang=2052&ptredirect=100&aid=1003903&daid=164&j_later=0&low_login_hour=0&regmaster=0

访问上面的地址(302跳转,注意Cookie的获取),获取到一个Cookie名为p_skey,将这个Cookie在二次登陆的时候,加入到Cookie中即可实现二次登陆。

WebQQ最新登陆协议

1、获取验证码

方法:Get

地址:

 代码如下 复制代码
https://ssl.ptlogin2.qq.com:443/check?uin=958736715&appid=1003903&js_ver=10041&js_type=0&login_sig=Mge3PexTk00li3ipMUlHCzouT0xU*8MU6YkkZsIUo8*zQKRTM2rwPUOFbhbGw1No&u1=http%3A%2F%2Fweb2.qq.com%2Floginproxy.html&r=0.9403657828909222

Cookie:提交无。返回ptvfsession或verifysession

2、第一次登陆

方法:Get

地址:

 代码如下 复制代码
https://ssl.ptlogin2.qq.com:443/login?u=【QQ号码】&p=【加密后的密码】&verifycode【验证码】&webqq_type=40&remember_uin=1&login2qq=1&aid=1003903&u1=http%3A%2F%2Fweb2.qq.com%2Floginproxy.html%3Flogin2qq%3D1%26webqq_type%3D40&h=1&ptredirect=0&ptlang=2052&daid=164&from_ui=1&pttype=1&dumy=&fp=loginerroralert&action=3-12-12775&mibao_css=m_webqq&t=1&g=1&js_type=0&js_ver=10041&login_sig=Mge3PexTk00li3ipMUlHCzouT0xU*8MU6YkkZsIUo8*zQKRTM2rwPUOFbhbGw1No

Cookie:提交ptvfsession或verifysession,返回pt2gguin、uin 、skey、ETK、superuin、superkey、supertoken 、ptisp、RK、ptuserinfo、ptcz 、ptcz、airkey、ptwebqq 。

3、第一次登陆成功后返回回调地址

方法:Get

地址:

 代码如下 复制代码
http://ptlogin4.web2.qq.com/check_sig?pttype=1&uin=【QQ号码】&service=login&nodirect=0&ptsig=tLfZcSFkHNP57Lg0tPtLM6XLh73XeghnEH3pTFyHCLY_&s_url=http%3A%2F%2Fweb2.qq.com%2Floginproxy.html%3Flogin2qq%3D1%26webqq_type%3D40&f_url=&ptlang=2052&ptredirect=100&aid=1003903&daid=164&j_later=0&low_login_hour=0&regmaster=0

Cookie:提交ptvfsession、verifysession、skey、ptcz:、ptwebqq、RK、superkey、supertoken。返回pt2gguin、uin、skey、p_uin、p_skey、pt4_token。

4、第二次登陆

方法:Post

地址:http://d.web2.qq.com/channel/login2

Cookie:提交ptvfsession、verifysession、skey、ptcz:、ptwebqq、RK、superkey、supertoken、p_skey、pt4_token、uin、p_uin、ptui_loginuin。

其他细节本文不再叙述,如果还有其他问题,请自行采取抓包软件,对WebQQ登陆进行抓包,无太大的技术含量,各位看官自行努力。

如果您参照上述两篇文章依然无法解决你的问题 了,那只有检查其它原因了。

下面本文章给各位整理了一篇关于微信公众平台消息有时候不处理问题追踪,希望此思路对各位朋友会带来帮助哦。

这几天我们的微信公众平台突然不处理用户消息,但是接口应答率是100%,但是还是会经常出现无法回复请求的信息,也就是是说明我么有接收到微信官方提供的数据,所以这边应答率是100%,昨天微信官方也发布了新的PHP SDK,发现sort在排序的时候需要设置第二个参数,以字符串来进行排序,这样就很清楚,微信又发送消息给我们,但是被我们的验证机制给拦截了,所以会造成这样的问题。

微信在升级SDK的时候也开放了微支付的接口申请,接口申请必须是服务号,而且是必须认证过的。O2O终于可以整套实现了。

Broadcast Address(广播地址)是专门用于同时向网络中所有工作站进行发送的一个地址。在使用TCP/IP 协议的网络中,主机标识段host ID 为全1 的IP 地址为广播地址,广播的分组传送给host ID段所涉及的所有计算机

网络广播地址计算方法:
(1)IP地址与子网掩码进行“位与”运算,得到网络地址
(2)子网掩码“取反”运算,然后与网络地址进行“位或”运算,得到广播地址

 代码如下 复制代码

//ip地址转换广播地址
private function ip2broadcast($ip,$mask){
 $ipSplit = explode('.',$ip);
 $maskSplit = explode('.',$mask);
 $broadcast = null;
 for ($i=0; $i < 4; $i++) {
  $ipBin = sprintf("%b",$ipSplit[$i]);
  while((8-strlen($ipBin))>0) $ipBin = "0".$ipBin;

  $maskBin = sprintf("%b",$maskSplit[$i]);
  while((8-strlen($maskBin))>0) $maskBin = "0".$maskBin;

  $broadcastBin = null;//www.111cn.net
  for ($j=0; $j < 8; $j++) {
   $broadcastBin .= (!intval(substr($maskBin, $j , 1))) |
      (intval(substr($ipBin, $j , 1)) & intval(substr($maskBin, $j , 1)));
  }

  if ($i>0) $broadcast .= ".";
  $broadcast .= bindec($broadcastBin);
 }
 return $broadcast;
}

 

[!--infotagslink--]

相关文章

  • php 中file_get_contents超时问题的解决方法

    file_get_contents超时我知道最多的原因就是你机器访问远程机器过慢,导致php脚本超时了,但也有其它很多原因,下面我来总结file_get_contents超时问题的解决方法总结。...2016-11-25
  • Spring AOP 对象内部方法间的嵌套调用方式

    这篇文章主要介绍了Spring AOP 对象内部方法间的嵌套调用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教...2021-08-29
  • HTTP 408错误是什么 HTTP 408错误解决方法

    相信很多站长都遇到过这样一个问题,访问页面时出现408错误,下面一聚教程网将为大家介绍408错误出现的原因以及408错误的解决办法。 HTTP 408错误出现原因: HTT...2017-01-22
  • php抓取网站图片并保存的实现方法

    php如何实现抓取网页图片,相较于手动的粘贴复制,使用小程序要方便快捷多了,喜欢编程的人总会喜欢制作一些简单有用的小软件,最近就参考了网上一个php抓取图片代码,封装了一个php远程抓取图片的类,测试了一下,效果还不错分享...2015-10-30
  • Android子控件超出父控件的范围显示出来方法

    下面我们来看一篇关于Android子控件超出父控件的范围显示出来方法,希望这篇文章能够帮助到各位朋友,有碰到此问题的朋友可以进来看看哦。 <RelativeLayout xmlns:an...2016-10-02
  • ps把文字背景变透明的操作方法

    ps软件是现在非常受大家喜欢的一款软件,有着非常不错的使用功能。这次文章就给大家介绍下ps把文字背景变透明的操作方法,喜欢的一起来看看。 1、使用Photoshop软件...2017-07-06
  • php 调用goolge地图代码

    <?php require('path.inc.php'); header('content-Type: text/html; charset=utf-8'); $borough_id = intval($_GET['id']); if(!$borough_id){ echo ' ...2016-11-25
  • c# 三种方法调用WebService接口

    这篇文章主要介绍了c# 三种方法调用WebService接口的相关资料,文中示例代码非常详细,帮助大家更好的理解和学习,感兴趣的朋友可以了解下...2020-07-07
  • intellij idea快速查看当前类中的所有方法(推荐)

    这篇文章主要介绍了intellij idea快速查看当前类中的所有方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2020-09-02
  • Mysql select语句设置默认值的方法

    1.在没有设置默认值的情况下: 复制代码 代码如下:SELECT userinfo.id, user_name, role, adm_regionid, region_name , create_timeFROM userinfoLEFT JOIN region ON userinfo.adm_regionid = region.id 结果:...2014-05-31
  • js导出table数据到excel即导出为EXCEL文档的方法

    复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta ht...2013-10-13
  • mysql 批量更新与批量更新多条记录的不同值实现方法

    批量更新mysql更新语句很简单,更新一条数据的某个字段,一般这样写:复制代码 代码如下:UPDATE mytable SET myfield = 'value' WHERE other_field = 'other_value';如果更新同一字段为同一个值,mysql也很简单,修改下where即...2013-10-04
  • ps怎么制作倒影 ps设计倒影的方法

    ps软件是一款非常不错的图片处理软件,有着非常不错的使用效果。这次文章要给大家介绍的是ps怎么制作倒影,一起来看看设计倒影的方法。 用ps怎么做倒影最终效果&#819...2017-07-06
  • js基础知识(公有方法、私有方法、特权方法)

    本文涉及的主题虽然很基础,在许多人看来属于小伎俩,但在JavaScript基础知识中属于一个综合性的话题。这里会涉及到对象属性的封装、原型、构造函数、闭包以及立即执行表达式等知识。公有方法 公有方法就是能被外部访问...2015-11-08
  • 安卓手机wifi打不开修复教程,安卓手机wifi打不开解决方法

    手机wifi打不开?让小编来告诉你如何解决。还不知道的朋友快来看看。 手机wifi是现在生活中最常用的手机功能,但是遇到手机wifi打不开的情况该怎么办呢?如果手机wifi...2016-12-21
  • PHP 验证码不显示只有一个小红叉的解决方法

    最近想自学PHP ,做了个验证码,但不知道怎么搞的,总出现一个如下图的小红叉,但验证码就是显示不出来,原因如下 未修改之前,出现如下错误; (1)修改步骤如下,原因如下,原因是apache权限没开, (2)点击打开php.int., 搜索extension=ph...2013-10-04
  • c#中分割字符串的几种方法

    单个字符分割 string s="abcdeabcdeabcde"; string[] sArray=s.Split('c'); foreach(string i in sArray) Console.WriteLine(i.ToString()); 输出下面的结果: ab de...2020-06-25
  • js控制页面控件隐藏显示的两种方法介绍

    javascript控制页面控件隐藏显示的两种方法,方法的不同之处在于控件隐藏后是否还在页面上占位 方法一: 复制代码 代码如下: document.all["panelsms"].style.visibility="hidden"; document.all["panelsms"].style.visi...2013-10-13
  • 连接MySql速度慢的解决方法(skip-name-resolve)

    最近在Linux服务器上安装MySql5后,本地使用客户端连MySql速度超慢,本地程序连接也超慢。 解决方法:在配置文件my.cnf的[mysqld]下加入skip-name-resolve。原因是默认安装的MySql开启了DNS的反向解析。如果禁用的话就不能...2015-10-21
  • C#方法的总结详解

    本篇文章是对C#方法进行了详细的总结与介绍,需要的朋友参考下...2020-06-25