AliyunPush.cs 4.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Web;
  5. using Library;
  6. using Tea;
  7. using Tea.Utils;
  8. namespace MySystem
  9. {
  10. public class AliyunPush
  11. {
  12. private static string AccessKeyID = "LTAI5tGH621tQ3FVd3jXYUEx";
  13. private static string AccessKeySecret = "SDjL74Lk9FUp8VPKl4YYcsbY7MIkRr";
  14. /**
  15. * 使用AK&SK初始化账号Client
  16. * @return Client
  17. * @throws Exception
  18. */
  19. public static AlibabaCloud.SDK.Push20160801.Client CreateClient()
  20. {
  21. // 工程代码泄露可能会导致 AccessKey 泄露,并威胁账号下所有资源的安全性。以下代码示例仅供参考。
  22. // 建议使用更安全的 STS 方式,更多鉴权访问方式请参见:https://help.aliyun.com/document_detail/378671.html。
  23. AlibabaCloud.OpenApiClient.Models.Config config = new AlibabaCloud.OpenApiClient.Models.Config
  24. {
  25. // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_ID。
  26. AccessKeyId = AccessKeyID, //Environment.GetEnvironmentVariable(AccessKeyID),
  27. // 必填,请确保代码运行环境设置了环境变量 ALIBABA_CLOUD_ACCESS_KEY_SECRET。
  28. AccessKeySecret = AccessKeySecret, //Environment.GetEnvironmentVariable(AccessKeySecret),
  29. };
  30. // Endpoint 请参考 https://api.aliyun.com/product/Push
  31. config.Endpoint = "cloudpush.aliyuncs.com";
  32. return new AlibabaCloud.SDK.Push20160801.Client(config);
  33. }
  34. public static string Push(string Account, string Title, string Body)
  35. {
  36. AlibabaCloud.SDK.Push20160801.Client client = CreateClient();
  37. AlibabaCloud.SDK.Push20160801.Models.PushRequest request = new AlibabaCloud.SDK.Push20160801.Models.PushRequest
  38. {
  39. AppKey = 333673923,
  40. PushType = "NOTICE",
  41. DeviceType = "ANDROID",
  42. StoreOffline = true,
  43. IOSRemind = true,
  44. AndroidRemind = true,
  45. Target = "ACCOUNT",
  46. TargetValue = Account,
  47. Title = Title,
  48. Body = Body,
  49. IOSRemindBody = Body,
  50. AndroidPopupTitle = Title,
  51. AndroidPopupBody = Body,
  52. AndroidNotificationChannel = "1",
  53. };
  54. AlibabaCloud.SDK.Push20160801.Models.PushResponse response = client.Push(request);
  55. return AlibabaCloud.TeaUtil.Common.ToJSONString(response.Body.ToMap());
  56. }
  57. public static string PushForIos(string Account, string Title, string Body)
  58. {
  59. AlibabaCloud.SDK.Push20160801.Client client = CreateClient();
  60. AlibabaCloud.SDK.Push20160801.Models.PushRequest request = new AlibabaCloud.SDK.Push20160801.Models.PushRequest
  61. {
  62. AppKey = 333673916,
  63. PushType = "NOTICE",
  64. DeviceType = "iOS",
  65. StoreOffline = true,
  66. IOSRemind = true,
  67. Target = "ACCOUNT",
  68. TargetValue = Account,
  69. Title = Title,
  70. Body = Body,
  71. IOSRemindBody = Body,
  72. IOSMutableContent = true,
  73. IOSMusic = "pushSound.mp3",
  74. IOSApnsEnv = Library.ConfigurationManager.EnvironmentFlag == 1 ? "DEV" : "PRODUCTION",
  75. IOSExtParameters = "{\"Url\":\"welcome-test\"}",
  76. };
  77. AlibabaCloud.SDK.Push20160801.Models.PushResponse response = client.Push(request);
  78. return AlibabaCloud.TeaUtil.Common.ToJSONString(response.Body.ToMap());
  79. }
  80. public static string IosPush(string Account, string Title, string Body)
  81. {
  82. AlibabaCloud.SDK.Push20160801.Client client = CreateClient();
  83. AlibabaCloud.SDK.Push20160801.Models.PushNoticeToiOSRequest request = new AlibabaCloud.SDK.Push20160801.Models.PushNoticeToiOSRequest
  84. {
  85. AppKey = 333673916,
  86. Target = "ACCOUNT",
  87. TargetValue = Account,
  88. Title = Title,
  89. Body = Body,
  90. ApnsEnv = Library.ConfigurationManager.EnvironmentFlag == 2 ? "DEV" : "PRODUCTION",
  91. };
  92. AlibabaCloud.SDK.Push20160801.Models.PushNoticeToiOSResponse response = client.PushNoticeToiOS(request);
  93. return AlibabaCloud.TeaUtil.Common.ToJSONString(response.Body.ToMap());
  94. }
  95. }
  96. }