inets:start(),
{Mega,Sec,_}=now(),
ApiKey=”apikey=aghjklpoikmnbhjklpoijnbfd”,%%用户的APIkey
%% 我的设备
% Channel_Id=”channel_id=1234567890098765432″,%% 用户的某一设备channelid,也就是客户端demo安装在的手机的channelid
%% 模拟器
Channel_Id=”channel_id=3959774938927755088″,%%客户端模拟器的channelid
Device_Type=”device_type=3″,%%类型,细节在官方文档中查看,1:浏览器设备;2:PC设备;3:Android设备;4:IOS设备;5:Windows phone设备
Message_Type=”message_type=1″,%% 0:消息;1:通知;默认为0
TitleStr=” :kkkk,嘎嘎嘎阿 达航空 件阿 斯顿,,,,哈哈哈,erlang”,
DescriptionStr=”行不:行啊!”,
Messages0=”messages={“title”:””,
Messages1=TitleStr,
Messages2=””,”description”:””,
Messages3=DescriptionStr,
Messages4=””,”notification_builder_id”:0,”
++ “”notification_basic_style”:2,”open_type”:2,”url”:””,”user_confirm”:0,”pkg_content”:””,”custom_content”:””}”,
Messages=Messages0 ++ Messages1 ++ Messages2 ++ Messages3 ++ Messages4,
Method=”method=push_msg”,
Msg_keys=”msg_keys=erlang_keys”,
Push_Type=”push_type=1″,
Time=”timestamp=”++ integer_to_list((Mega * 1000000 + Sec)),
User_Id=”user_id=213123123″,%%用户的userid
Url=”http://channel.api.duapp.com/rest/2.0/channel/channel”,
Http_Method=”POST”,
SecretKey=”123weqwe12wq12eqweqweqwe”,%%用户的secretekey
Str0=Http_Method ++ Url ++ ApiKey ++ Channel_Id ++ Device_Type ++ Message_Type ++ Messages0,
Str1=Messages2,
Str2=Messages4 ++ Method ++ Msg_keys ++ Push_Type ++ Time ++ User_Id ++ SecretKey,
TitleBin=list_to_binary(TitleStr),
TIntegerU=unicode:characters_to_list(TitleBin,utf8),
TChanges=utf8(TIntegerU,[]),
Title_Utf8=
lists:foldl(fun(Change,Acc) ->
case Change of
[Term] when Term >=$a, Term=< $z ->
Acc ++ Change;
[Term] when Term >=$A, Term=< $Z ->
Acc ++ Change;
[Term] when Term >=$0, Term=< $9 ->
Acc ++ Change;
[Term] when Term=:=$. ->
Acc ++ Change;
[Term] when Term=:=$_ ->
Acc ++ Change;
[Term] when Term=:=$- ->
Acc ++ Change;
[Term] when Term=:=32 ->
Acc ++ [43];
_ ->
Acc ++ list_to_hex_s(Change)
end
end,[],TChanges),
DesBin=list_to_binary(DescriptionStr),
DIntegerU=unicode:characters_to_list(DesBin,utf8),
DChanges=utf8(DIntegerU,[]),
Des_Utf8=
lists:foldl(fun(Change,Acc) ->
case Change of
[Term] when Term >=$a, Term=< $z ->
Acc ++ Change;
[Term] when Term >=$A, Term=< $Z ->
Acc ++ Change;
[Term] when Term >=$0, Term=< $9 ->
Acc ++ Change;
[Term] when Term=:=$. ->
Acc ++ Change;
[Term] when Term=:=$_ ->
Acc ++ Change;
[Term] when Term=:=$- ->
Acc ++ Change;
_ ->
Acc ++ list_to_hex_s(Change)
end
end,[],DChanges),
StrValue=escape_uri(Str0) ++ Title_Utf8 ++ escape_uri(Str1) ++ Des_Utf8 ++ escape_uri(Str2),
Md5Str=md5_hex(StrValue),
Sign=”sign=” ++ Md5Str,
PostInfo=ApiKey ++ “&” ++ Sign ++ “&” ++ User_Id ++ “&”
++ Channel_Id ++ “&” ++ Device_Type ++ “&” ++ Message_Type ++ “&” ++ Messages
++ “&” ++ Method ++ “&” ++ Msg_keys ++ “&” ++ Push_Type ++ “&” ++ Time,
timer:sleep(30*1000),
Result=httpc:request(post,{Url,[],”application/x-www-form-urlencoded”,PostInfo},[],[]),
case Result of
{ok,{ ->
nothing;
_ ->
io:format(“Result:~p~n”,[Result])
end.