Erlang实现的百度云推送Android服务端实例

2019-11-06 09:28:26王冬梅

    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,[]),