腾讯企业邮箱邮件提醒 c# 企业邮箱腾讯c# 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用管理员帐号申请一个access_token,然后用这个key保持长连接 这个access_token我已经拿到了 就是保持长连接失败,我看你的这个传参传的是access_token和邮箱,我试了也不好使,他们接口说明里面是让传ver吧,可以把你的API说明书给我一份么,三口 [email protected] 解决了 确实是参数问题 thank you 楼主 您好,最近我也在学腾讯企业邮箱的集成,为什么我在OAuth授权获取access_token 的时候总是报一个错啊?错误是:System.Net.WebException {"远程服务器返回错误: (400) 错误的请求。"},不知道是哪里的原因,楼主能否给个简单的示例啊,小弟先谢了!!! 以下代码实现单点登录,测试通过。但邮件通知未通过,就没贴出。<?php $token_data = get_access_token('腾讯企业邮箱管理员账户', '接口key'); $token_data_arr = json_decode($token_data,true); $access_token = $token_data_arr['access_token']; $token_type = $token_data_arr['token_type']; $agent = '腾讯企业邮箱管理员账户'; $user = '将要被操作的企业邮箱里的用户邮箱'; $ticket = get_auth_key($token_type, $access_token); echo "ticket=[".$ticket."]<br><br>"; $href="https://exmail.qq.com/cgi-bin/login?fun=bizopenssologin&method=bizauth&agent=$agent&user=$user&ticket=$ticket"; echo '<a href="'.$href.'">一键登录邮箱</a><br><br>'; function get_access_token($client_id, $client_secret){ $postUrl = 'https://tel.exmail.qq.com/cgi-bin/token'; $postData = 'grant_type=client_credentials&client_id='.$client_id.'&client_secret='.$client_secret; return my_curl_post($postUrl, $postData, null); } function get_auth_key($token_type, $access_token){ $postUrl = 'http://openapi.exmail.qq.com:12211/openapi/mail/authkey'; $postData = "[email protected]"; $headerArr[0]="Authorization:$token_type $access_token"; $retstr = my_curl_post($postUrl, $postData, $headerArr); $ps = strpos($retstr, '{'); $retstr = substr($retstr, $ps); $retstr_arr = json_decode($retstr,true); $auth_key = $retstr_arr['auth_key']; return $auth_key; } function my_curl_post($postURL, $postData, $headerArr){ $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 解决返回false问题 curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 解决返回false问题 curl_setopt($ch,CURLOPT_URL, $postURL); if ($headerArr){ curl_setopt($ch, CURLOPT_HTTPHEADER , $headerArr ); curl_setopt($ch, CURLOPT_HEADER, 1); } else{ curl_setopt($ch, CURLOPT_HEADER, 0); //设置header } curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1); //post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $postData); $data = curl_exec($ch); //运行curl curl_close($ch); return $data; }?> 楼主这个不是新邮件提醒,而是未读邮件提醒。楼主的代码也有问题,既然是未读邮件提醒,就不用长连接了。直接使用短连接来获取未读邮件是多少,提示给用户。-----------------API上最后有个名词解释socket,我想应该是用socket异步获取服务器的数据,不断的刷新socket中是否有新数据接收,就像聊天一样。首先是给listen一个Ver,这个东西解释是本地最新维护的版本号,找遍了RTX也没找到这个东西,谁给解释下??-------还有一个方法可以即时的获取新邮件提醒,就是用socket定时轮询newcount,第一次保存未读邮件数,定时轮询,一旦新邮件到达就给出提示,缺点就是太耗内存了,要不断的去send请求。有做出新邮件提醒的在么,解释下官方的Ver是什么东西啊? socket在给listen发送access_token后,返回一个ret:0 的json,紧接着就返回一个Ver:1234567890123.然后我就用这个Ver再提交给listen,算是第一次握手,同时还上传了当前的客户端[email protected] ,不断获取socket的消息。一直等,不断给邮箱发新邮件测试,服务器也没给我反馈新邮件字段。API中解释简直就是简短精悍,搞不懂。openapi/mail/list 这个地址api也没有,带alias参数后,会反馈邮箱前20个字段消息。我想问题还是出在了这个Ver的身上,求助一下,官方的Ver到底是什么东西???? 请问,listen接口如何调用,我这边获取token成功,但是维持长连接失败了,传入参数ver=0,返回无效的请求,请问还需要传入其他的参数吗? 如何控制输入法使在当前textbox控件中只能输入汉字和半角字母&数字 急急急!!!C#高手请帮忙!窗体的简单问题 如何在listview上添加一个button bat 批处理文件有空格 谁能帮我讲讲C#中[]的用法?以前没接触过,现在遇到了 关于WPF的Style PostMessage与SendMessage的区别 TCP Socket编程中,若是缓冲区比接收到的数据要小怎么处理? 知道一个对象的指针,如何取得具体的对象啊? C# 索引超出范围。必须为非负值并小于集合大小。 C#字符串截取 问个巨简单的问题!!!
$token_data = get_access_token('腾讯企业邮箱管理员账户', '接口key');
$token_data_arr = json_decode($token_data,true); $access_token = $token_data_arr['access_token'];
$token_type = $token_data_arr['token_type']; $agent = '腾讯企业邮箱管理员账户';
$user = '将要被操作的企业邮箱里的用户邮箱';
$ticket = get_auth_key($token_type, $access_token);
echo "ticket=[".$ticket."]<br><br>"; $href="https://exmail.qq.com/cgi-bin/login?fun=bizopenssologin&method=bizauth&agent=$agent&user=$user&ticket=$ticket";
echo '<a href="'.$href.'">一键登录邮箱</a><br><br>';
function get_access_token($client_id, $client_secret){
$postUrl = 'https://tel.exmail.qq.com/cgi-bin/token';
$postData = 'grant_type=client_credentials&client_id='.$client_id.'&client_secret='.$client_secret;
return my_curl_post($postUrl, $postData, null);
}
function get_auth_key($token_type, $access_token){
$postUrl = 'http://openapi.exmail.qq.com:12211/openapi/mail/authkey';
$postData = "[email protected]";
$headerArr[0]="Authorization:$token_type $access_token";
$retstr = my_curl_post($postUrl, $postData, $headerArr);
$ps = strpos($retstr, '{');
$retstr = substr($retstr, $ps);
$retstr_arr = json_decode($retstr,true);
$auth_key = $retstr_arr['auth_key'];
return $auth_key;
}
function my_curl_post($postURL, $postData, $headerArr){
$ch = curl_init();//初始化curl
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 解决返回false问题
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); // 解决返回false问题
curl_setopt($ch,CURLOPT_URL, $postURL);
if ($headerArr){
curl_setopt($ch, CURLOPT_HTTPHEADER , $headerArr );
curl_setopt($ch, CURLOPT_HEADER, 1);
}
else{
curl_setopt($ch, CURLOPT_HEADER, 0); //设置header
}
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //要求结果为字符串且输出到屏幕上
curl_setopt($ch, CURLOPT_POST, 1); //post提交方式
curl_setopt($ch, CURLOPT_POSTFIELDS, $postData);
$data = curl_exec($ch); //运行curl
curl_close($ch);
return $data;
}
?>
楼主的代码也有问题,既然是未读邮件提醒,就不用长连接了。直接使用短连接来获取未读邮件是多少,提示给用户。
-----------------
API上最后有个名词解释socket,我想应该是用socket异步获取服务器的数据,不断的刷新socket中是否有新数据接收,就像聊天一样。
首先是给listen一个Ver,这个东西解释是本地最新维护的版本号,找遍了RTX也没找到这个东西,谁给解释下??
-------
还有一个方法可以即时的获取新邮件提醒,就是用socket定时轮询newcount,第一次保存未读邮件数,定时轮询,一旦新邮件到达就给出提示,缺点就是太耗内存了,要不断的去send请求。
有做出新邮件提醒的在么,解释下官方的Ver是什么东西啊?
然后我就用这个Ver再提交给listen,算是第一次握手,同时还上传了当前的客户端[email protected] ,不断获取socket的消息。
一直等,不断给邮箱发新邮件测试,服务器也没给我反馈新邮件字段。
API中解释简直就是简短精悍,搞不懂。openapi/mail/list 这个地址api也没有,带alias参数后,会反馈邮箱前20个字段消息。
我想问题还是出在了这个Ver的身上,求助一下,官方的Ver到底是什么东西????