如何调用微信可以分享到微信的接口接口

130被浏览99037分享邀请回答登录你的微信平台,点击“公众号设置”。
点击“功能设置”,然后点击“设置”。
设置JS接口安全域名。这里填写的是一级域名,不带www和http。最多可以设置三个域名。设置完后点击确定。(多说一句,相比以前的分享没有任何域名限制,这里设置安全域名,目的是为了当发现此公众平台发现诱导分享行为时,可以根据此域名追溯到所有分享出去的链接,以及通过这些链接增加的粉丝。这样,微信就可以牢牢控制了你的微信平台,一旦发现违规,让分享链接失效,删除掉诱导行为增加的粉丝,是瞬间就可以完成的。因此,微信平台的开发者,一定要合理来使用分享功能,不要因小失大。等到你的微信平台被封,估计哭都来不及)
在开发者中心中获取你的AppID和AppSecret,接下来在获取令牌时,需要这两个信息。
获取令牌。在服务器端完成,代码如下:
function wx_get_token() {
$token = S('access_token');
if (!$token) {
$res = file_get_contents('https://api./cgi-bin/token?grant_type=client_credential&appid='
.'你的AppID'.'&secret='
.'你的AppSecret');
$res = json_decode($res, true);
$token = $res['access_token'];
// 注意:这里需要将获取到的token缓存起来(或写到数据库中)
// 不能频繁的访问https://api./cgi-bin/token,每日有次数限制
// 通过此接口返回的token的有效期目前为2小时。令牌失效后,JS-SDK也就不能用了。
// 因此,这里将token值缓存1小时,比2小时小。缓存失效后,再从接口获取新的token,这样
// 就可以避免token失效。
// S()是ThinkPhp的缓存函数,如果使用的是不ThinkPhp框架,可以使用你的缓存函数,或使用数据库来保存。
S('access_token', $token, 3600);
注意:返回的access_token长度至少要留够512字节。接口返回值:
{"access_token":"ACCESS_TOKEN","expires_in":7200}
{"access_token":"vdlThyTfyB0N5eMoi3n_aMFMKPuwkE0MgyGf_0h0fpzL8p_hsdUX8VGxz5oSXuq5dM69lxP9wBwN9Yzg-0kVHY33BykRC0YXZZZ-WdxEic4","expires_in":7200}
获取jsapi的ticket。jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。
function wx_get_jsapi_ticket(){
$ticket = "";
$ticket = S('wx_ticket');
if (!empty($ticket)) {
$token = S('access_token');
if (empty($token)){
wx_get_token();
$token = S('access_token');
if (empty($token)) {
logErr("get access token error.");
$url2 = sprintf("https://api./cgi-bin/ticket/getticket?access_token=%s&type=jsapi",
$res = file_get_contents($url2);
$res = json_decode($res, true);
$ticket = $res['ticket'];
// 注意:这里需要将获取到的ticket缓存起来(或写到数据库中)
// ticket和token一样,不能频繁的访问接口来获取,在每次获取后,我们把它保存起来。
S('wx_ticket', $ticket, 3600);
}while(0);
接口返回值:
{"errcode":0,"errmsg":"ok","ticket":"sM4AOVdWfPE4DxkXGEs8VMKv7FMCPm-I98-klC6SO3Q3AwzxqljYWtzTCxIH9hDOXZCo9cgfHI6kwbe_YWtOQg","expires_in":7200}
签名,将jsapi_ticket、noncestr、timestamp、分享的url按字母顺序连接起来,进行sha1签名。
noncestr是你设置的任意字符串。
timestamp为时间戳。
$timestamp = time();
$wxnonceStr = "任意字符串";
$wxticket = wx_get_jsapi_ticket();
$wxOri = sprintf("jsapi_ticket=%s&noncestr=%s×tamp=%s&url=%s",
$wxticket, $wxnonceStr, $timestamp,
'要分享的url(从http开始,如果有参数,包含参数)'
$wxSha1 = sha1($wxOri);
步骤2 添加JS代码
生成签名后,就可以使用js代码了。在你的html中,进行如下设置即可。
&script type="text/javascript" src="http://res./open/js/jweixin-1.0.0.js"&&/script&
&script type="text/javascript"&
// 微信配置
wx.config({
debug: false,
appId: "你的AppID",
timestamp: '上一步生成的时间戳',
nonceStr: '上一步中的字符串',
signature: '上一步生成的签名',
jsApiList: ['onMenuShareTimeline', 'onMenuShareAppMessage'] // 功能列表,我们要使用JS-SDK的什么功能
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在 页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready 函数中。
wx.ready(function(){
// 获取“分享到朋友圈”按钮点击状态及自定义分享内容接口
wx.onMenuShareTimeline({
title: '分享标题', // 分享标题
link:"分享的url,以http或https开头",
imgUrl: "分享图标的url,以http或https开头" // 分享图标
// 获取“分享给朋友”按钮点击状态及自定义分享内容接口
wx.onMenuShareAppMessage({
title: '分享标题', // 分享标题
desc: "分享描述", // 分享描述
link:"分享的url,以http或https开头",
imgUrl: "分享图标的url,以http或https开头", // 分享图标
type: 'link', // 分享类型,music、video或link,不填默认为link
195 条评论分享收藏感谢收起01 条评论分享收藏感谢收起查看更多回答关键字:微信公众平台 JSSDK 发送给朋友 分享到朋友圈&onMenuShareTimeline&onMenuShareAppMessage&作者:方倍工作室&原文:&
在这篇微信公众平台开发教程中,我们将介绍如何在网页中实现发送给朋友和分享到朋友圈时内容参数自定义的功能。
本文分为以下二个部分:
生成JS-SDK权限验证签名
实现发送给朋友和分享到朋友圈时内容参数自定义
我们提供本接口的付费购买,需要请关注公众账号 方倍工作室 或加QQ
一、微信JS-SDK
1. 获得Access Token
access token的获得方法在前面有介绍,详情见&
2. 获取jsapi_ticket
生成签名之前必须先了解一下jsapi_ticket,jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。
参考以下文档获取access_token(有效期7200秒,开发者必须在自己的服务全局缓存access_token):用第一步拿到的access_token 采用http GET方式请求获得jsapi_ticket(有效期7200秒,开发者必须在自己的服务全局缓存jsapi_ticket),接口地址如下
https://api./cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
成功返回如下JSON:
"errcode":0,
"errmsg":"ok",
"ticket":"bxLdikRXVbTPdHSM05e5u5sUoXNKd8-41ZO3MhKoyN5OfkWITDGgnr2fwJ0m9E8NYzWKVZvdVtaUgWvsdshFKA",
"expires_in":7200
获得jsapi_ticket之后,就可以生成JS-SDK权限验证的签名了。
3. 签名算法实现
签名生成规则如下:参与签名的字段包括noncestr(随机字符串), 有效的jsapi_ticket, timestamp(时间戳), url(当前网页的URL,不包含#及其后面部分) 。对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2&)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。
即signature=sha1(string1)。 示例:
noncestr=Wm3WZYTPz0wzccnW
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg
timestamp=
url=http://mp.?params=value
步骤1. 对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2&)拼接成字符串string1:
jsapi_ticket=sM4AOVdWfPE4DxkXGEs8VMCPGGVi4C3VM0P37wVUCFvkVAy_90u5h9nbSlYy3-Sl-HhTdfl2fzFy1AOcHKP7qg&noncestr=Wm3WZYTPz0wzccnW&timestamp=&url=http://mp.?params=value
步骤2. 对string1进行sha1签名,得到signature:
0f9de62fce790f9a083d5c99e95740ceb90c27ed
完整代码如下
class JSSDK {
private $appId;
private $appSecret;
public function __construct($appId, $appSecret) {
$this-&appId = $appId;
$this-&appSecret = $appSecret;
public function getSignPackage() {
$jsapiTicket = $this-&getJsApiTicket();
// 注意 URL 一定要动态获取,不能 hardcode.
$protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
$url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$timestamp = time();
$nonceStr = $this-&createNonceStr();
// 这里参数的顺序要按照 key 值 ASCII 码升序排序
$string = "jsapi_ticket=$jsapiTicket&noncestr=$nonceStr&timestamp=$timestamp&url=$url";
$signature = sha1($string);
$signPackage = array(
=& $this-&appId,
"nonceStr"
=& $nonceStr,
"timestamp" =& $timestamp,
"signature" =& $signature,
"rawString" =& $string
return $signPackage;
private function createNonceStr($length = 16) {
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
$str = "";
for ($i = 0; $i & $length; $i++) {
$str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
return $str;
private function getJsApiTicket() {
// jsapi_ticket 应该全局存储与更新,以下代码以写入到文件中做示例
$data = json_decode(file_get_contents("jsapi_ticket.json"));
if ($data-&expire_time & time()) {
$accessToken = $this-&getAccessToken();
// 如果是企业号用以下 URL 获取 ticket
// $url = "https://qyapi./cgi-bin/get_jsapi_ticket?access_token=$accessToken";
$url = "https://api./cgi-bin/ticket/getticket?type=jsapi&access_token=$accessToken";
$res = json_decode($this-&httpGet($url));
$ticket = $res-&
if ($ticket) {
$data-&expire_time = time() + 7000;
$data-&jsapi_ticket = $ticket;
$fp = fopen("jsapi_ticket.json", "w");
fwrite($fp, json_encode($data));
fclose($fp);
$ticket = $data-&jsapi_
return $ticket;
private function getAccessToken() {
// access_token 应该全局存储与更新,以下代码以写入到文件中做示例
$data = json_decode(file_get_contents("access_token.json"));
if ($data-&expire_time & time()) {
// 如果是企业号用以下URL获取access_token
// $url = "https://qyapi./cgi-bin/gettoken?corpid=$this-&appId&corpsecret=$this-&appSecret";
$url = "https://api./cgi-bin/token?grant_type=client_credential&appid=$this-&appId&secret=$this-&appSecret";
$res = json_decode($this-&httpGet($url));
$access_token = $res-&access_
if ($access_token) {
$data-&expire_time = time() + 7000;
$data-&access_token = $access_token;
$fp = fopen("access_token.json", "w");
fwrite($fp, json_encode($data));
fclose($fp);
$access_token = $data-&access_
return $access_token;
private function httpGet($url) {
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_TIMEOUT, 500);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_URL, $url);
$res = curl_exec($curl);
curl_close($curl);
return $res;
二、发送给朋友和分享到朋友圈参数自定义
1. 绑定域名
先登录微信公众平台进入&公众号设置&的&功能设置&里填写&JS接口安全域名&。
2. 获取签名包
require_once "jssdk.php";
$jssdk = new JSSDK("yourAppID", "yourAppSecret");
$signPackage = $jssdk-&GetSignPackage();
3. 引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https):
&script src="http://res./open/js/jweixin-1.0.0.js"&&/script&
4.通过config接口注入权限验证配置
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用。
wx.config({
debug: false,
appId: '&?php echo $signPackage["appId"];?&',
timestamp: &?php echo $signPackage["timestamp"];?&,
nonceStr: '&?php echo $signPackage["nonceStr"];?&',
signature: '&?php echo $signPackage["signature"];?&',
jsApiList: [
// 所有要调用的 API 都要加到这个列表中
'checkJsApi',
'openLocation',
'getLocation',
'onMenuShareTimeline',
'onMenuShareAppMessage'
5. 通过ready接口处理成功验证
地理位置需要在页面加载时就调用,需要把相关接口放在ready函数中调用来确保正确执行
wx.ready(function () {
5.1 通过checkJsApi判断当前客户端版本是否支持分享参数自定义
wx.checkJsApi({
jsApiList: [
'getLocation',
'onMenuShareTimeline',
'onMenuShareAppMessage'
success: function (res) {
alert(JSON.stringify(res));
5.2 使用数组定义分享内容参数
$news = array("Title" =&"微信公众平台开发实践", "Description"=&"本书共分10章,案例程序采用广泛流行的PHP、MySQL、XML、CSS、JavaScript、HTML5等程序语言及数据库实现。", "PicUrl" =&'/i/404/305.jpg', "Url" =&'/txw1958/p/weixin-development-best-practice.html');
5.3. 实现JS分享功能
wx.onMenuShareAppMessage({
title: '&?php echo $news['Title'];?&',
desc: '&?php echo $news['Description'];?&',
link: '&?php echo $news['Url'];?&',
imgUrl: '&?php echo $news['PicUrl'];?&',
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
// alert('用户点击发送给朋友');
success: function (res) {
// alert('已分享');
cancel: function (res) {
// alert('已取消');
fail: function (res) {
// alert(JSON.stringify(res));
wx.onMenuShareTimeline({
title: '&?php echo $news['Title'];?&',
link: '&?php echo $news['Url'];?&',
imgUrl: '&?php echo $news['PicUrl'];?&',
trigger: function (res) {
// 不要尝试在trigger中使用ajax异步请求修改本次分享的内容,因为客户端分享操作是一个同步操作,这时候使用ajax的回包会还没有返回
// alert('用户点击分享到朋友圈');
success: function (res) {
// alert('已分享');
cancel: function (res) {
// alert('已取消');
fail: function (res) {
// alert(JSON.stringify(res));
三、实现效果
弹出请求获取页面
分享时的插件显示方倍工作室的&微信公众平台开发最佳实践
阅读(...) 评论()查看: 14410|回复: 2
微信JS分享等接口SDK(C#)获取access_token以及jsapi_ticket临时票据
TA的每日心情擦汗 08:56签到天数: 51 天[LV.5]常住居民I
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。
通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时可以直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。
平时开发中我们使用最多的就是分享到朋友圈和分享给朋友的功能。今天笔者就此来分享一下自己开发的一点经验,最后会奉上源码以及demo例子供大家参考。
如何使用JS-SDK,里面介绍的很清楚,大家可以去看。
步骤大致如下,开发文档里面是这样写的:
步骤一:绑定域名
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
备注:登录后可在“开发者中心”查看对应的接口权限。
步骤二:引入JS文件
在需要调用JS接口的页面引入如下JS文件,(支持https):
请注意,如果你的页面启用了https,务必引入
,否则将无法在iOS9.0以上系统中成功使用JSSDK
如需使用摇一摇周边功能,请引入 jweixin-1.1.0.js
备注:支持使用 AMD/CMD 标准模块加载方法加载
步骤三:通过config接口注入权限验证配置
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用(同一个url仅需调用一次,对于变化url的SPA的web app可在每次url变化时进行调用,目前Android微信客户端不支持pushState的H5新特性,所以使用pushState来实现web app的页面会导致签名失败,此问题会在Android6.2中修复)。
wx.config({
& & debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
& & appId: '', // 必填,公众号的唯一标识
& & timestamp: , // 必填,生成签名的时间戳
& & nonceStr: '', // 必填,生成签名的随机串
& & signature: '',// 必填,签名,见附录1
& & jsApiList: [] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
步骤四:通过ready接口处理成功验证
wx.ready(function(){
& & // config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
步骤五:通过error接口处理失败验证
wx.error(function(res){
& & // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
其实这五步中除了步骤三:通过config接口注入权限验证配置外,其他都很简单,笔者今天主要就是获取jsapi_ticket,这个是步骤三种配置生成签名的必要条件。而要获取jsapi_ticket的前提是你得获取到access_token,我们来看看微信JSSDK说明文档里对它们是如何定义的。
jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。由于获取jsapi_ticket的api调用次数非常有限,频繁刷新jsapi_ticket会导致api调用受限,影响自身业务,开发者必须在自己的服务全局缓存jsapi_ticket 。
access_token是公众号的全局唯一票据,公众号调用各接口时都需使用access_token。开发者需要进行妥善保存。access_token的存储至少要保留512个字符空间。access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效。
如此看来,我们要想使用微信分享的功能或者微信js-sdk提供给我们的一些接口的功能就分为3步。
1.首先获取access_token并缓存到服务器,并定时进行刷新。
2.通过access_token获取jsapi_ticket并缓存到服务器端,定时进行刷新。
3.通过jsapi_ticket生成JS-SDK权限验证的签名。
这三步搞定了,微信才容许我们去调js接口供我们使用。以上三步需要我们对照开发文档写对应的sdk方法去获取access_token和jsapi_ticket以及权限验证的签名,大家可以结合源码对照开发文档去看一下,这三步的相关接口和代码源码里面都有这里我就不再贴了。需要说明的是access_token和jsapi_ticket调用的频率或者多个同时调用会出问题,所以需要我们全局缓存这两个值,缓存时需要注意过期时间,如果在过期时间内就从缓存里面读取,否则的话重新去微信服务器上get一下对应的url取得access_token和jsapi_ticket然后放进缓存中,具体实现逻辑可以参考源码。
下面是源码和demo结构图:
QQ截图46.png (18.71 KB, 下载次数: 81)
14:32 上传
下面说下如何使用该接口,首先需要在你的web应用程序的Global.asax里面的Application_Start方法里面添加以下代码:
[C#] 纯文本查看 复制代码 protected void Application_Start(object sender, EventArgs e)
// 在应用程序启动时运行的代码
string appid = &&;
string secret = &&;
WeiXin.ConfigGlobalCredential(appid, secret);
//设置获取微信access_token缓存的设置和获取方法
WeiXin.ConfigAccessTokenCache((credential) =&
CacheHelper.Insert(&wxAccessToken&, credential.access_token, credential.expires_in / 60 - 1);
return CacheHelper.GetCache&string&(&wxAccessToken&);
//设置获取微信jsapiticket缓存的设置和获取方法
WeiXin.ConfigJsApiTicketCache(jsapiticket =&
CacheHelper.Insert(&wxTicket&, jsapiticket.ticket, jsapiticket.expires_in / 60 - 1);
return CacheHelper.GetCache&string&(&wxTicket&);
以上代码主要是在有效期内来缓存access_token和jsapiticket,避免重复调用,造成业务受限。
分享页面.cs代码:
[C#] 纯文本查看 复制代码 string timestamp = string.E
string noncestr = string.E
string signature = string.E
protected void Page_Load(object sender, EventArgs e)
var timestamp = DateTime.Now.Ticks.ToString().Substring(0, 10);
var noncestr = new Random().Next(10000).ToString();
var uri = Request.Url.ToString().Replace(&#&, &&);
var signature = WeiXin.GetSignature(Convert.ToInt64(timestamp), noncestr, uri);
分享页面aspx页面js代码:
[HTML] 纯文本查看 复制代码&script src=&http://res./open/js/jweixin-1.0.0.js&&&/script&
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '填写你自己的公众号appid', // 必填,公众号的唯一标识
timestamp: &%=timestamp %&, // 必填,生成签名的时间戳
nonceStr: '&%=noncestr %&', // 必填,生成签名的随机串
signature: '&%=signature %&',// 必填,签名,见附录1
jsApiList: ['onMenuShareTimeline','onMenuShareAppMessage'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2
wx.onMenuShareTimeline({
title: '', // 分享标题
link: '', // 分享链接
imgUrl: '', // 分享图标
success: function () {
// 用户确认分享后执行的回调函数
cancel: function () {
// 用户取消分享后执行的回调函数
好了下面贴上源码文件,大家可以自己研究。
(77.25 KB, 下载次数: 111)
14:39 上传
点击文件名下载附件
微信js接口SDK以及Demo阅读权限: 90
TA的每日心情开心8&小时前签到天数: 388 天[LV.9]以坛为家II
比较实用啊
TA的每日心情奋斗9&小时前签到天数: 58 天[LV.5]常住居民I
可以有,不错的帖子市场合作,请您联系:
品牌广告合作,请您联系:
企业创新合作,请您联系:
地方合作,请您联系:
满足以下场景,获得更高通过率:
新融资求报道
新公司求报道
新产品求报道
创投新闻爆料
为你推送和解读最前沿、最有料的科技创投资讯
聚集15家顶级投资机构的专业互联网融资平台
聚集全球最优秀的创业者,项目融资率接近97%,领跑行业问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
遇到需求,微信端页面需要实现点击按钮分享页面而非点击右上角原生菜单分享,在不使用图片提示的情况下,有其他方法吗?用了这个组件,现在除了部分webkit内核浏览器(safari、chrome、360外)只剩微信了。。。谁知道有可行性的方法吗
来源: 微信开放平台问答
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
微信有 自己的 jssdk 官方文档:官方 demo :
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:

我要回帖

更多关于 微信分享软件 的文章

 

随机推荐