方维分享系统,很强大全面,可改动很多东西,但由于很多东西都是他们公司自己开发的,后期再加新功能的话会很难,大婶级别的可能能看懂,不确定他们公司允不允许用做二次开发的商业用途。你可以在本地安装试试看,网上有系统说明文档可以下载,照着说明文档安装就可以了。
❷ 微信分享到朋友圈,怎么自定义分享的标题,图片,内容
<script type="text/javascript">
var tit = $('#wx-title').val(); //标题
var img = $('#wx-img').val(); //图片
var con = $('#wx-con').val(); //简介
var link = $('#wx-link').val(); //链接
document.addEventListener('WeixinJSBridgeReady', function onBridgeReady() {
// 发送给好友
WeixinJSBridge.on('menu:share:appmessage', function (argv) {
WeixinJSBridge.invoke('sendAppMessage', {
"appid": "123",
"img_url": img,
"img_width": "160",
"img_height": "160",
"link": link,
"desc": con,
"title": tit
}, function (res) {
_report('send_msg', res.err_msg);
})
});
// 分享到朋友圈
WeixinJSBridge.on('menu:share:timeline', function (argv) {
WeixinJSBridge.invoke('shareTimeline', {
"img_url": img,
"img_width": "160",
"img_height": "160",
"link": link,
"desc": con,
"title": tit
}, function (res) {
_report('timeline', res.err_msg);
});
});
}, false)
</script>
把这一段复制到你的网页里,就好了,不过只能在微信内置浏览器里生效。
❸ thinkphp项目如何自定义微信分享描述内容
自定义微信分享描述内容跟thinkphp无关的。你的公众号要用分享权限,不然是无法自定义 的。
❹ 求教微信分享朋友圈功能开发,php
申请应用AppKey申请方法:访问友推网站后台,登录后进入应用列表,添加需要集成友推组件的App,如下图,添加成功后可获取应用的AppKey。如何把app分享到微信2申请社交平台appkey集成前您需要为您的应用在各大社交网站的开放平台申请账号并通过审核,否则只能调用系统的分享菜单,无法跟踪分享的回调事件及统计平台如何把app分享到微信3引用youtui库项目将youtui-lib项目库和应用工程放在同一个目录下在PackageExplorer中右键点击工程的根目录,选择Properties(属性),然后点击,在android选项点击Add添加youtui-lib如何把app分享到微信4注册需要分享的平台1.配置各分享平台key,该配置文件为youtui_sdk.xml,配置完放入工程的assets文件夹。2.如果需要分享到哪个平台就将该平台的Enable属性设置为true.3.如果需要将某个平台排列到前面,只需要改变它在youtui_sdk.xml文件中的位置即可。5各平台需要注意的事项:新浪微博:新浪微博需要验证应用签名,请一定要在新浪开放平台管理中心应用信息->基本信息->Android签名包名信息配置该信息每次包名变化或者使用的.keystore变化都会导致应用签名变化,请重新到新浪微博开放平台设置。运行Demo时如果重新编译,因为使用的.keystore文件变化也会导致应用签名变化,导致Demo新浪微博分享无法正常工作,请运行Demo时使用Demo工程包中提供的debug.keystore替换C:\Users\Administrator.android中的debug.keystore文件微信和朋友圈:微信和朋友圈也需要验证应用签名,请在微信开放平台管理中心修改应用->开发信息配置。QQ和QQ空间:QQ和QQ空间使用的是腾讯开放平台api,请在腾讯开放平台申请账号和注册应用,请不要使用QQ互联(用于网站账号登录)的配置,虽然都是腾讯的,但是两个平台并不通用,除了需要在youtui_sdk.xml配置信息,还需要在manifest文件中的android:scheme中的tencent后的一串数字换成自己应用的appid。最后一行配置说明:选用调用系统分享菜单功能在AndroidManifest.xml注册权限在AndroidManifest.xml注册需要的Activity微信和朋友圈回调设置如果需要分享微信和朋友圈,必需建一个应用包名+.wxapi的包,在该包下建WXEntryActivity.java,将该类继承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用写代码).bidaround.youtui.wxapi.WXEntryActivity{}如图:(将com.xingxinglangtuoche替换成你应用的package名,微信回调会使用到)如何把app分享到微信初始化友推开发者请在自己的程序开始,最好是在MainActivity的onCreate方法调用YtTemplate.init(this)初始化友推sdk,这样友推sdk才能进行后续调用(否则分享等操作会出现空指针异常),例如:protectedvoidonCreate(BundlesavedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);YtTemplate.init(this);/初始化友推/initView();}应用退出时:在您项目的出口Activity的onDestroy方法的第一行插入下面的代码YtTemplate.release(this);此方法用于释放内存,统计用户使用情况,一旦调用了release,就必须重新调用init才能使用友推的功能,否则会出现空指针异常;创建ShareData实例,调用该实例的set方法设置需要分享的数据:创建ShareData实例,调用该实例的set方法设置自己需要分享的数据,关于该实例具体内容见下文,如果只是分享应用则只需要设置setIsAppShare(true)就可以分享应用在友推后台填写的信息和下载链接。ShareData包含的字段:_url判断是否为分享应用待分享的文字,短信要小于70个字符,微博要小于140个字符,如果需要分享链接,最好将链接url放在最后待分享的本地图片地址,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片待分享网络图片url,分享图片的话需要在本地和网络图片中选一,如果都有则优先分享本地图片待分享内容的描述待分享内容的标题待分享内容的跳转链接通过创建该类实例,调用实例的set方法设置这些参数,例如:ShareDatashareData=newShareData();shareData.isAppShare=false;//设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新,后面的值不用设置。shareData.setDescription("友推积分组件");shareData.setTitle("友推分享");shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,");shareData.setTarget_url("");shareData.setImageUrl("");shareData.setImagePath("");各个平台分享数据的限制和注意事项:因为各个平台的分享限制,请分享时尽量分享图片+链接,依靠链接来了解信息1)微信朋友圈微信分享为linkcard形式,超出的文字部分不会显示2)新浪微博很低版本的新浪微博不支持发多类型微博,进行图文分享时只会分享图片,新浪微博分享消息最长为140字3)QQ、QQ空间QQ分享的消息最长40字,分享的标题最长30字,多余的部分将被忽略,description将被忽略QQ空间分享的消息最长200字,分享的标题最长600字,多余的部分将被忽略,description将被忽略4)腾讯微博只有image(imagePath或imageUrl)和text被分享,其他字段忽略,腾讯微博分享消息最长为140字5)人人网只有image(imagePath或imageUrl)和text被分享,其他字段忽略6)短信只有text被分享,其他字段忽略7)邮件只有text被分享,其他字段忽略如何把app分享到微信调用友推分享推荐组件为应用添加一个分享推荐按钮,如:如何把app分享到微信在分享按钮事件中调用youtui的组件即可,示例代码:publicvoidonClick(Viewv){if(v.getId()==R.id.popup_bt){/调用友推分享推荐组件,YouTuiViewType类的常量为分享样式参数,目前支持白色列表和黑色网格两种//创建分享的模板,第一个参数为activity,第二个参数为分享窗口样式,第三个参数为是否需要积分/YtTemplateblackTemp=newYtTemplate(this,YouTuiViewType.BLACK_POPUP,false);//黑色网格样式不需要积分活动/YtTemplateblackTemp=newYtTemplate(this,YouTuiViewType.WHITE_LIST,ture);///白色列表样式需要积分活动ShareDatashareData=newShareData();shareData.isAppShare=false;//设置为true则分享的信息从友推后台填写的应用信息中读取,可动态更新后面的值不用设置。shareData.setDescription("友推积分组件");shareData.setTitle("友推分享");shareData.setText("通过友推积分组件,开发者几行代码就可以为应用添加分享送积分功能,并提供详尽的后台统计数据,除了本身具备的分享功能外,开发者也可将积分功能单独集成在已有分享组件的app上,快来试试吧");shareData.setTarget_url("");shareData.setImageUrl("");shareData.setImagePath("");blackTemp.setShareData(shareData);//设置默认的分享数据;shareData设置参看4.6//**如果要为某个平台设置不一样的分享信息。则单独设置*///blackTemp.addData(YtPlatform.PLATFORM_QQ,shareData);//调出分享窗口blackTemp.show();//如果需要自定义分享事件,可以创建监听事件,然后在回调中处理YtShareListenerlistener1=newYtShareListener(){@OverridepublicvoidonSuccess(ErrorInfoarg0){}@OverridepublicvoidonPreShare(){}@OverridepublicvoidonError(ErrorInfoarg0){}@OverridepublicvoidonCancel(){}};//给新浪微博添加分享监听blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO,listener1);//给QQ添加分享监听//blackTemp.addListener(YtPlatform.PLATFORM_QQ,listener2);}
❺ PHP 微信分享 自定义内容
方式1:用自己公众号的sdk去实现分享;
方式2:用js借助uc浏览器的方式分享:
方法一,直接进微信开发者中心有接口,河具体实现方式:方式二如下:
<html>
<body>
<script src="jquery.min.js"></script>
<h4>测试微信分享功能(仅在手机版UC浏览器下有效)</h4>
<input type="button" class="btnShareFriends" style='margin: 20px auto; width: 100%;height:50px;' value='分享给微信好友'> </input>
<br/>
<input type="button" class="btnWeixinShare" style='margin: 20px auto; width: 100%;height:50px;' value='分享到微信朋友圈'> </input>
<script type="TEXT/javascript">
$(function () {
if (/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))) {
if (window.location.href.indexOf("?mobile") < 0) {
//判断是手机端访问
if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
//判断是UC浏览器
if (typeof (ucweb) != "undefined") {
$(".btnShareFriends").click(function () {
var Browser = new Object();
Browser.ios = /iphone/.test(Browser.userAgent); //判断ios系统
var title = "测试分享到朋友圈";
var img = "";
var url = location.href;
if (Browser.ios) {
ucbrowser.web_share(title, img, url, 'kWeixin', '', '@39yst', '');
} else {
ucweb.startRequest("shell.page_share", [title, img, url, 'WechatFriends', '', '', '']);
}
});
$(".btnWeixinShare").click(function () {
var Browser = new Object();
Browser.ios = /iphone/.test(Browser.userAgent); //判断ios系统
var title = "测试分享到朋友圈";
var img = "";
var url = location.href;
if (Browser.ios) {
ucbrowser.web_share(title, img, url, 'kWeixinFriend', '', '@39yst', '');
} else {
ucweb.startRequest("shell.page_share", [title, img, url, 'WechatTimeline', '', '', '']);
}
});
}
} else {
alert("请使用手机UC浏览器测试");
}
} else {
alert("请使用手机访问测试");
}
}
});
</script>
</body>
</html>
这个需要注意uc只支持uc浏览器
❻ 如何控制微信分享网页时,展示的标题,描述和图片
你这个情况可以用微信分享卡片链接自定义工具来做。就是展示的标题,描述和图片可以完全自定义,自己想展示啥就展示啥:
完全按照我们填写的内容来展示的
我想你要的应该就是这种吧?!如果是麻烦采纳哦。
哦,对了。这种自定义链接内容工具我以前用“wetool”的,但是因为他们下架不能用了。然后改用“微尚书”的,你也可以试试,还蛮不错的。
❼ 网站在微信中分享,怎么实现自定义的标题,描述和小图标
分享必须是认证了的公众号。
2.必须有大于300*300的图片。才会显示。
3.授权ip 需要填写
4.js安全域名需要设置
5.公众号管理中必须绑定成功,测试自定义菜单能正常发布
6.页面内容较大,在浏览器没有加载完全网页内容后就点击了分享。
可以从以上几个方面处理,一般前4个弄好后就可以了
❽ php微信上传永久图片素材求代码
您好,这样的:
//素材
const MEDIA_FOREVER_UPLOAD_URL = '/material/add_material?';
const MEDIA_FOREVER_NEWS_UPLOAD_URL = '/material/add_news?';
const MEDIA_FOREVER_NEWS_UPDATE_URL = '/material/update_news?';
const MEDIA_FOREVER_GET_URL = '/material/get_material?';
const MEDIA_FOREVER_DEL_URL = '/material/del_material?';
const MEDIA_FOREVER_COUNT_URL = '/material/get_materialcount?';
const MEDIA_FOREVER_BATCHGET_URL = '/material/batchget_material?';
/**
* 上传临时素材,有效期为3天(认证后的订阅号可用)
* 注意:上传大文件时可能需要先调用 set_time_limit(0) 避免超时
* 注意:数组的键值任意,但文件名前必须加@,使用单引号以避免本地路径斜杠被转义
* 注意:临时素材的media_id是可复用的!
* @param array $data {"media":'@Path\filename.jpg'}
* @param type 类型:图片:image 语音:voice 视频:video 缩略图:thumb
* @return boolean|array
*/
public function uploadMedia($data, $type){
if (!$this->access_token && !$this->checkAuth()) return false;
//原先的上传多媒体文件接口使用 self::UPLOAD_MEDIA_URL 前缀
$result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_UPLOAD_URL.'access_token='.$this->access_token.'&type='.$type,$data,true);
if ($result)
{
$json = json_decode($result,true);
if (!$json || !empty($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return $json;
}
return false;
}
/**
* 获取临时素材(认证后的订阅号可用)
* @param string $media_id 媒体文件id
* @param boolean $is_video 是否为视频文件,默认为否
* @return raw data
*/
public function getMedia($media_id,$is_video=false){
if (!$this->access_token && !$this->checkAuth()) return false;
//原先的上传多媒体文件接口使用 self::UPLOAD_MEDIA_URL 前缀
//如果要获取的素材是视频文件时,不能使用https协议,必须更换成http协议
$url_prefix = $is_video?str_replace('https','http',self::API_URL_PREFIX):self::API_URL_PREFIX;
$result = $this->http_get($url_prefix.self::MEDIA_GET_URL.'access_token='.$this->access_token.'&media_id='.$media_id);
if ($result)
{
if (is_string($result)) {
$json = json_decode($result,true);
if (isset($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
}
return $result;
}
return false;
}
/**
* 上传永久素材(认证后的订阅号可用)
* 新增的永久素材也可以在公众平台官网素材管理模块中看到
* 注意:上传大文件时可能需要先调用 set_time_limit(0) 避免超时
* 注意:数组的键值任意,但文件名前必须加@,使用单引号以避免本地路径斜杠被转义
* @param array $data {"media":'@Path\filename.jpg'}
* @param type 类型:图片:image 语音:voice 视频:video 缩略图:thumb
* @param boolean $is_video 是否为视频文件,默认为否
* @param array $video_info 视频信息数组,非视频素材不需要提供 array('title'=>'视频标题','introction'=>'描述')
* @return boolean|array
*/
public function uploadForeverMedia($data, $type,$is_video=false,$video_info=array()){
if (!$this->access_token && !$this->checkAuth()) return false;
//#TODO 暂不确定此接口是否需要让视频文件走http协议
//如果要获取的素材是视频文件时,不能使用https协议,必须更换成http协议
//$url_prefix = $is_video?str_replace('https','http',self::API_URL_PREFIX):self::API_URL_PREFIX;
//当上传视频文件时,附加视频文件信息
if ($is_video) $data['description'] = self::json_encode($video_info);
$result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_UPLOAD_URL.'access_token='.$this->access_token.'&type='.$type,$data,true);
if ($result)
{
$json = json_decode($result,true);
if (!$json || !empty($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return $json;
}
return false;
}
/**
* 上传永久图文素材(认证后的订阅号可用)
* 新增的永久素材也可以在公众平台官网素材管理模块中看到
* @param array $data 消息结构{"articles":[{...}]}
* @return boolean|array
*/
public function uploadForeverArticles($data){
if (!$this->access_token && !$this->checkAuth()) return false;
$result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_NEWS_UPLOAD_URL.'access_token='.$this->access_token,self::json_encode($data));
if ($result)
{
$json = json_decode($result,true);
if (!$json || !empty($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return $json;
}
return false;
}
/**
* 修改永久图文素材(认证后的订阅号可用)
* 永久素材也可以在公众平台官网素材管理模块中看到
* @param string $media_id 图文素材id
* @param array $data 消息结构{"articles":[{...}]}
* @param int $index 更新的文章在图文素材的位置,第一篇为0,仅多图文使用
* @return boolean|array
*/
public function updateForeverArticles($media_id,$data,$index=0){
if (!$this->access_token && !$this->checkAuth()) return false;
if (!isset($data['media_id'])) $data['media_id'] = $media_id;
if (!isset($data['index'])) $data['index'] = $index;
$result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_NEWS_UPDATE_URL.'access_token='.$this->access_token,self::json_encode($data));
if ($result)
{
$json = json_decode($result,true);
if (!$json || !empty($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return $json;
}
return false;
}
/**
* 获取永久素材(认证后的订阅号可用)
* 返回图文消息数组或二进制数据,失败返回false
* @param string $media_id 媒体文件id
* @param boolean $is_video 是否为视频文件,默认为否
* @return boolean|array|raw data
*/
public function getForeverMedia($media_id,$is_video=false){
if (!$this->access_token && !$this->checkAuth()) return false;
$data = array('media_id' => $media_id);
//#TODO 暂不确定此接口是否需要让视频文件走http协议
//如果要获取的素材是视频文件时,不能使用https协议,必须更换成http协议
//$url_prefix = $is_video?str_replace('https','http',self::API_URL_PREFIX):self::API_URL_PREFIX;
$result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_GET_URL.'access_token='.$this->access_token,self::json_encode($data));
if ($result)
{
if (is_string($result)) {
$json = json_decode($result,true);
if (isset($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return $json;
}
return $result;
}
return false;
}
/**
* 删除永久素材(认证后的订阅号可用)
* @param string $media_id 媒体文件id
* @return boolean
*/
public function delForeverMedia($media_id){
if (!$this->access_token && !$this->checkAuth()) return false;
$data = array('media_id' => $media_id);
$result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_DEL_URL.'access_token='.$this->access_token,self::json_encode($data));
if ($result)
{
$json = json_decode($result,true);
if (!$json || !empty($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return true;
}
return false;
}
/**
* 获取永久素材列表(认证后的订阅号可用)
* @param string $type 素材的类型,图片(image)、视频(video)、语音 (voice)、图文(news)
* @param int $offset 全部素材的偏移位置,0表示从第一个素材
* @param int $count 返回素材的数量,取值在1到20之间
* @return boolean|array
* 返回数组格式:
* array(
* 'total_count'=>0, //该类型的素材的总数
* 'item_count'=>0, //本次调用获取的素材的数量
* 'item'=>array() //素材列表数组,内容定义请参考官方文档
* )
*/
public function getForeverList($type,$offset,$count){
if (!$this->access_token && !$this->checkAuth()) return false;
$data = array(
'type' => $type,
'offset' => $offset,
'count' => $count,
);
$result = $this->http_post(self::API_URL_PREFIX.self::MEDIA_FOREVER_BATCHGET_URL.'access_token='.$this->access_token,self::json_encode($data));
if ($result)
{
$json = json_decode($result,true);
if (isset($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return $json;
}
return false;
}
/**
* 获取永久素材总数(认证后的订阅号可用)
* @return boolean|array
* 返回数组格式:
* array(
* 'voice_count'=>0, //语音总数量
* 'video_count'=>0, //视频总数量
* 'image_count'=>0, //图片总数量
* 'news_count'=>0 //图文总数量
* )
*/
public function getForeverCount(){
if (!$this->access_token && !$this->checkAuth()) return false;
$result = $this->http_get(self::API_URL_PREFIX.self::MEDIA_FOREVER_COUNT_URL.'access_token='.$this->access_token);
if ($result)
{
$json = json_decode($result,true);
if (isset($json['errcode'])) {
$this->errCode = $json['errcode'];
$this->errMsg = $json['errmsg'];
return false;
}
return $json;
}
return false;
}
❾ 关于微信公众平台订阅号 自定义菜单 php 代码的问题
demo中有这个简单的案例,只需要执行一次就可以创建了,
参考这里:http://mp.weixin.qq.com/wiki/index.php?title=%E8%87%AA%E5%AE%9A%E4%B9%89%E8%8F%9C%E5%8D%95%E5%88%9B%E5%BB%BA%E6%8E%A5%E5%8F%A3
❿ 微信分享到朋友圈中的按钮点击在php代码和输出页面代码怎么写
下面是代码(相关参数请自行修改):
function WeiXinShareBtn() {
if (typeof WeixinJSBridge == "undefined") {
alert("xxxxxxxxxxxxxxxxxxx,通过微信分享文章 ");
} else {
WeixinJSBridge.invoke('shareTimeline', {
"title": "xxx",
"link": "http://www.36kr.com",
"desc": "xxxxxxxx",
"img_url": "assets/images/apple-touch-icon.png"
});
}
}