fromusername就寫一個(gè)OPEN_ID 把你要發(fā)的的用戶整個(gè)list 循環(huán)調(diào)用接口就ok了
按需網(wǎng)站設(shè)計(jì)可以根據(jù)自己的需求進(jìn)行定制,做網(wǎng)站、成都做網(wǎng)站構(gòu)思過程中功能建設(shè)理應(yīng)排到主要部位公司做網(wǎng)站、成都做網(wǎng)站的運(yùn)用實(shí)際效果公司網(wǎng)站制作網(wǎng)站建立與制做的實(shí)際意義
代碼很簡(jiǎn)單,我這里就不多廢話了,直接奉上源碼:
復(fù)制代碼?代碼如下:
%@?page?language="java"?import="java.util.*"?pageEncoding="UTF-8"%
%
String?path?=?request.getContextPath();
String?basePath?=?request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%
!DOCTYPE?HTML?PUBLIC?"-//W3C//DTD?HTML?4.01?Transitional//EN"
html
head
base?href="%=basePath%"
title喝喝/title
meta?http-equiv="pragma"?content="no-cache"
meta?http-equiv="cache-control"?content="no-cache"
meta?http-equiv="expires"?content="0"????
meta?http-equiv="keywords"?content="keyword1,keyword2,keyword3"
meta?http-equiv="description"?content="This?is?my?page"
!--
link?rel="stylesheet"?type="text/css"?href="styles.css"
--
script
var?imgUrl?=?'
var?lineLink?=?'
var?descContent?=?"萬(wàn)達(dá)狂歡節(jié),?奪寶幸運(yùn)星大抽獎(jiǎng)活動(dòng)開始啦!";
var?shareTitle?=?'萬(wàn)達(dá)狂歡節(jié)';
var?appid?=?'wxc9937e3a66af6dc8';
function?shareFriend()?{
WeixinJSBridge.invoke('sendAppMessage',{
"appid":?appid,
"img_url":?imgUrl,
"img_width":?"640",
"img_height":?"640",
"link":?lineLink,
"desc":?descContent,
"title":?shareTitle
},?function(res)?{
_report('send_msg',?res.err_msg);
})
}
function?shareTimeline()?{
WeixinJSBridge.invoke('shareTimeline',{
"img_url":?imgUrl,
"img_width":?"640",
"img_height":?"640",
"link":?lineLink,
"desc":?descContent,
"title":?shareTitle
},?function(res)?{
_report('timeline',?res.err_msg);
});
}
function?shareWeibo()?{
WeixinJSBridge.invoke('shareWeibo',{
"content":?descContent,
"url":?lineLink,
},?function(res)?{
_report('weibo',?res.err_msg);
});
}
//?當(dāng)微信內(nèi)置瀏覽器完成內(nèi)部初始化后會(huì)觸發(fā)WeixinJSBridgeReady事件。
document.addEventListener('WeixinJSBridgeReady',?function?onBridgeReady()?{
//?發(fā)送給好友
WeixinJSBridge.on('menu:share:appmessage',?function(argv){
shareFriend();
});
//?分享到朋友圈
WeixinJSBridge.on('menu:share:timeline',?function(argv){
shareTimeline();
});
//?分享到微博
WeixinJSBridge.on('menu:share:weibo',?function(argv){
shareWeibo();
});
},?false);
/script
/head
body
!--?script
var?imgUrl?=?"
var?lineLink?=?"
var?descContent?=?'測(cè)試別當(dāng)真';
var?shareTitle?=?'分享';
var?appid?=?'wx1259b351c201841d';
function?shareFriend()?{
WeixinJSBridge.invoke('sendAppMessage',{
"appid":?appid,
"img_url":?imgUrl,
"img_width":?"200",
"img_height":?"200",
"link":?lineLink,
"desc":?descContent,
"title":?shareTitle
},?function(res)?{
//_report('send_msg',?res.err_msg);
});
}
function?shareTimeline()?{
WeixinJSBridge.invoke('shareTimeline',{
"img_url":?imgUrl,
"img_width":?"200",
"img_height":?"200",
"link":?lineLink,
"desc":?descContent,
"title":?shareTitle
},?function(res)?{
//_report('timeline',?res.err_msg);
});
}
function?shareWeibo()?{
WeixinJSBridge.invoke('shareWeibo',{
"content":?descContent,
"url":?lineLink,
},?function(res)?{
//_report('weibo',?res.err_msg);
});
}
//?當(dāng)微信內(nèi)置瀏覽器完成內(nèi)部初始化后會(huì)觸發(fā)WeixinJSBridgeReady事件。
document.addEventListener('WeixinJSBridgeReady',?function?onBridgeReady()?{
//?發(fā)送給好友
WeixinJSBridge.on('menu:share:appmessage',?function(argv){
shareFriend();
});
//?分享到朋友圈
WeixinJSBridge.on('menu:share:timeline',?function(argv){
shareTimeline();
});
//?分享到微博
WeixinJSBridge.on('menu:share:weibo',?function(argv){
shareWeibo();
});
},?false);
/script?--
h1呵呵呵呵/h1???????????
/body
/html
申請(qǐng)應(yīng)用 AppKey
申請(qǐng)方法:訪問友推網(wǎng)站后臺(tái),登錄后進(jìn)入應(yīng)用列表,添加需要集成友推組件的 App,如下圖,添加成功后可獲取應(yīng)用的 AppKey。
如何把a(bǔ)pp分享到微信
2
申請(qǐng)社交平臺(tái)appkey
集成前您需要為您的應(yīng)用在各大社交網(wǎng)站的開放平臺(tái)申請(qǐng)賬號(hào)并通過審核,否則只能調(diào)用系統(tǒng)的分享菜單,無(wú)法跟蹤分享的回調(diào)事件及統(tǒng)計(jì)平臺(tái)
如何把a(bǔ)pp分享到微信
3
引用youtui庫(kù)項(xiàng)目
將youtui-lib項(xiàng)目庫(kù)和應(yīng)用工程放在同一個(gè)目錄下
在 Package Explorer 中右鍵點(diǎn)擊工程的根目錄,選擇 Properties(屬性),然后點(diǎn)擊,在Android選項(xiàng)點(diǎn)擊Add添加youtui-lib
如何把a(bǔ)pp分享到微信
4
注冊(cè)需要分享的平臺(tái)
1.配置各分享平臺(tái)key,該配置文件為youtui_sdk.xml,配置完放入工程的assets文件夾。
2.如果需要分享到哪個(gè)平臺(tái)就將該平臺(tái)的Enable屬性設(shè)置為true.
3.如果需要將某個(gè)平臺(tái)排列到前面,只需要改變它在youtui_sdk.xml文件中的位置即可。
5
各平臺(tái)需要注意的事項(xiàng):
新浪微博:
新浪微博需要驗(yàn)證應(yīng)用簽名,請(qǐng)一定要在新浪開放平臺(tái)管理中心應(yīng)用信息 - 基本信息 - Android簽名包名信息 配置該信息
每次包名變化或者使用的.keystore變化都會(huì)導(dǎo)致應(yīng)用簽名變化,請(qǐng)重新到新浪微博開放平臺(tái)設(shè)置。
運(yùn)行Demo時(shí)如果重新編譯,因?yàn)槭褂玫?keystore文件變化也會(huì)導(dǎo)致應(yīng)用簽名變化,導(dǎo)致Demo新浪微博分享無(wú)法正常工作,請(qǐng)運(yùn)行Demo時(shí)使用Demo工程包中提供的debug.keystore替換C:\Users\Administrator.android中的debug.keystore文件
微信和朋友圈:
微信和朋友圈也需要驗(yàn)證應(yīng)用簽名,請(qǐng)?jiān)谖⑿砰_放平臺(tái)管理中心修改應(yīng)用 - 開發(fā)信息配置。
QQ和QQ空間:
QQ和QQ空間使用的是騰訊開放平臺(tái)api,請(qǐng)?jiān)隍v訊開放平臺(tái)申請(qǐng)賬號(hào)和注冊(cè)應(yīng)用,請(qǐng)不要使用QQ互聯(lián)(用于網(wǎng)站賬號(hào)登錄)的配置,雖然都是騰訊的,但是兩個(gè)平臺(tái)并不通用,除了需要在youtui_sdk.xml配置信息,還需要在manifest文件中的android:scheme中的tencent后的一串?dāng)?shù)字換成自己應(yīng)用的appid。
?xml version="1.0" encoding="utf-8"?
最后一行配置說明:選用調(diào)用系統(tǒng)分享菜單功能
在AndroidManifest.xml 注冊(cè)權(quán)限
在 AndroidManifest.xml 注冊(cè)需要的Activity
微信和朋友圈回調(diào)設(shè)置
如果需要分享微信和朋友圈,必需建一個(gè) 應(yīng)用包名+ .wxapi 的包,在該包下建 WXEntryActivity.java,將該類繼承cn.bidaround.youtui.wxapi.WXEntryActivity即可(里面不用寫代碼)
public class WXEntryActivity extends cn.bidaround.youtui.wxapi.WXEntryActivity { }
如圖:(將com.xingxinglangtuoche替換成你應(yīng)用的package名,微信回調(diào)會(huì)使用到)
如何把a(bǔ)pp分享到微信
初始化友推
開發(fā)者請(qǐng)?jiān)谧约旱某绦蜷_始,最好是在MainActivity的onCreate方法調(diào)用YtTemplate.init(this)初始化友推sdk,這樣友推sdk才能進(jìn)行后續(xù)調(diào)用(否則分享等操作會(huì)出現(xiàn)空指針異常),例如:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); YtTemplate.init(this);/初始化友推/ initView(); } 應(yīng)用退出時(shí):
在您項(xiàng)目的出口Activity的 onDestroy 方法的第一行插入下面的代碼 YtTemplate.release(this); 此方法用于釋放內(nèi)存,統(tǒng)計(jì)用戶使用情況,一旦調(diào)用了release,就必須重新調(diào)用init才能使用友推的功能,否則會(huì)出現(xiàn)空指針異常;
創(chuàng)建 ShareData 實(shí)例,調(diào)用該實(shí)例的set方法設(shè)置需要分享的數(shù)據(jù): 創(chuàng)建ShareData實(shí)例,調(diào)用該實(shí)例的set方法設(shè)置自己需要分享的數(shù)據(jù),關(guān)于該實(shí)例具體內(nèi)容見下文,如果只是分享應(yīng)用則只需要設(shè)置 setIsAppShare(true) 就可以分享應(yīng)用在友推后臺(tái)填寫的信息和下載鏈接。
ShareData 包含的字段:
isAppShare text imagePath imageUrl description title target_url 判斷是否為分享應(yīng)用 待分享的文字,短信要小于70個(gè)字符,微博要小于140個(gè)字符,如果需要分享鏈接,最好將鏈接url放在最后 待分享的本地圖片地址,分享圖片的話需要在本地和網(wǎng)絡(luò)圖片中選一,如果都有則優(yōu)先分享本地圖片 待分享網(wǎng)絡(luò)圖片url,分享圖片的話需要在本地和網(wǎng)絡(luò)圖片中選一,如果都有則優(yōu)先分享本地圖片 待分享內(nèi)容的描述 待分享內(nèi)容的標(biāo)題 待分享內(nèi)容的跳轉(zhuǎn)鏈接
通過創(chuàng)建該類實(shí)例,調(diào)用實(shí)例的set方法設(shè)置這些參數(shù),例如:
ShareData shareData = new ShareData(); shareData.isAppShare = false;//設(shè)置為true則分享的信息從友推后臺(tái)填寫的應(yīng)用信息中讀取,可動(dòng)態(tài)更新,后面的值不用設(shè)置。 shareData.setDescription("友推積分組件"); shareData.setTitle("友推分享"); shareData.setText("通過友推積分組件,開發(fā)者幾行代碼就可以為應(yīng)用添加分享送積分功能,并提供詳盡的后臺(tái)統(tǒng)計(jì)數(shù)據(jù),除了本身具備的分享功能外,開發(fā)者也可將積分功能單獨(dú)集成在已有分享組件的app上,");
shareData.setTarget_url("");
shareData.setImageUrl("");
shareData.setImagePath("");
各個(gè)平臺(tái)分享數(shù)據(jù)的限制和注意事項(xiàng):
因?yàn)楦鱾€(gè)平臺(tái)的分享限制,請(qǐng)分享時(shí)盡量分享圖片+鏈接,依靠鏈接來了解更多信息
1) 微信 朋友圈 微信分享為linkcard形式,超出的文字部分不會(huì)顯示
2) 新浪微博 很低版本的新浪微博不支持發(fā)多類型微博,進(jìn)行圖文分享時(shí)只會(huì)分享圖片,新浪微博分享消息最長(zhǎng)為140字
3) QQ、QQ空間 QQ分享的消息最長(zhǎng)40字,分享的標(biāo)題最長(zhǎng)30字,多余的部分將被忽略,description將被忽略 QQ空間分享的消息最長(zhǎng)200字,分享的標(biāo)題最長(zhǎng)600字,多余的部分將被忽略,description將被忽略
4) 騰訊微博 只有image(imagePath或imageUrl)和text被分享,其他字段忽略,騰訊微博分享消息最長(zhǎng)為140字
5) 人人網(wǎng) 只有image(imagePath或imageUrl)和text被分享,其他字段忽略
6) 短信 只有text被分享,其他字段忽略
7) 郵件 只有text被分享,其他字段忽略
如何把a(bǔ)pp分享到微信
調(diào)用友推分享推薦組件
為應(yīng)用添加一個(gè)分享推薦按鈕,如:
如何把a(bǔ)pp分享到微信
在分享按鈕事件中調(diào)用youtui的組件即可,示例代碼:
public void onClick(View v) { if(v.getId()==R.id.popup_bt)
{ /調(diào)用友推分享推薦組件,YouTuiViewType類的常量為分享樣式參數(shù),目前支持白色列表和黑色網(wǎng)格兩種/ /創(chuàng)建分享的模板,第一個(gè)參數(shù)為activity,第二個(gè)參數(shù)為分享窗口樣式,第三個(gè)參數(shù)為是否需要積分/
YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.BLACK_POPUP,false); //黑色網(wǎng)格樣式不需要積分活動(dòng) /YtTemplate blackTemp = new YtTemplate(this, YouTuiViewType.WHITE_LIST,ture);/ //白色列表樣式需要積分活動(dòng)
ShareData shareData = new ShareData();
shareData.isAppShare = false;//設(shè)置為true則分享的信息從友推后臺(tái)填寫的應(yīng)用信息中讀取,可動(dòng)態(tài)更新后面的值不用設(shè)置。
shareData.setDescription("友推積分組件");
shareData.setTitle("友推分享");
shareData.setText("通過友推積分組件,開發(fā)者幾行代碼就可以為應(yīng)用添加分享送積分功能,并提供詳盡的后臺(tái)統(tǒng)計(jì)數(shù)據(jù),除了本身具備的分享功能外,開發(fā)者也可將積分功能單獨(dú)集成在已有分享組件的app上,快來試試吧 ");
shareData.setTarget_url("");
shareData.setImageUrl("");
shareData.setImagePath("");
blackTemp.setShareData(shareData);//設(shè)置默認(rèn)的分享數(shù)據(jù);shareData 設(shè)置參看4.6
//**如果要為某個(gè)平臺(tái)設(shè)置不一樣的分享信息。則單獨(dú)設(shè)置*/ //blackTemp.addData(YtPlatform.PLATFORM_QQ, shareData); //調(diào)出分享窗口 blackTemp.show();
//如果需要自定義分享事件,可以創(chuàng)建監(jiān)聽事件,然后在回調(diào)中處理 YtShareListener listener1 = new YtShareListener() {
@Override
public void onSuccess(ErrorInfo arg0)
{
}
@Override public void onPreShare()
{
}
@Override
public void onError(ErrorInfo arg0)
{
}
@Override
public void onCancel() {
}
};//給新浪微博添加分享監(jiān)聽 blackTemp.addListener(YtPlatform.PLATFORM_SINAWEIBO, listener1);
//給QQ添加分享監(jiān)聽 //
blackTemp.addListener(YtPlatform.PLATFORM_QQ, listener2); }
你這個(gè)刷票行為并不違法 出現(xiàn)404錯(cuò)誤 應(yīng)該是短時(shí)間多次訪問形成ddos攻擊 如果你是被防火墻封了ip還好 若是真的形成ddos攻擊導(dǎo)致所有外網(wǎng)無(wú)法訪問 原地址的主人 追究必判