1

I'm using Amazon SNS for to send notifications. Currently i have realization where i can publish message to a some topic. But i need send push notification direct to Android device using GCM. Can somebody help me to implement it in C# code? Here is my code for to publish message to topic:

private IAmazonSimpleNotificationService FAmazonSNS = null;


    public void Connect(string AAccessKey, string ASecretKey, bool AUseHTTP, string ARegion, int ATimeoutInMSec, int AReadWriteTimeoutInMSec, bool AConnectToSQS, bool AConnectToS3, bool AConnectToSNS)
    {
        AWSCredentials vAWSCredentials = new BasicAWSCredentials(AAccessKey, ASecretKey);

        if ((AConnectToSNS) && (FAmazonSNS == null))
        {
            AmazonSimpleNotificationServiceConfig vAmazonSNSConfig = new AmazonSimpleNotificationServiceConfig();
            vAmazonSNSConfig.UseHttp = AUseHTTP;
            vAmazonSNSConfig.RegionEndpoint = RegionEndpoint.GetBySystemName(ARegion);

            if (ATimeoutInMSec != 0)
            { vAmazonSNSConfig.Timeout = TimeSpan.FromMilliseconds(ATimeoutInMSec); }

            if (AReadWriteTimeoutInMSec != 0)
            { vAmazonSNSConfig.ReadWriteTimeout = TimeSpan.FromMilliseconds(AReadWriteTimeoutInMSec); }

            FAmazonSNS = AWSClientFactory.CreateAmazonSimpleNotificationServiceClient(vAWSCredentials, vAmazonSNSConfig);
        }
    }

public bool SNS_Publish(string ATopicARN, string ASubject, string AMessage, out int AStatusCode, out string AErrorCode, out string AErrorMessage)
    {
        try
        {
            PublishRequest vPublishRequest = new PublishRequest();
            vPublishRequest.TopicArn = ATopicARN;
            vPublishRequest.Subject = ASubject;
            vPublishRequest.Message = AMessage;

            //vPublishRequest.TargetArn

            PublishResponse vPublishResponse = FAmazonSNS.Publish(vPublishRequest);

            AStatusCode = (int)vPublishResponse.HttpStatusCode;
            AErrorCode = "";
            AErrorMessage = "";
            return (vPublishResponse.HttpStatusCode == System.Net.HttpStatusCode.OK);
        }
        catch (AmazonSimpleNotificationServiceException ex)
        {
            AStatusCode = (int)ex.StatusCode;
            AErrorCode = ex.ErrorCode;
            AErrorMessage = ex.Message;
            return false;
        }
        catch (Exception e)
        {
            AStatusCode = 0;
            AErrorCode = ""; //e.InnerException.Message;
            AErrorMessage = e.Message; // A WebException with status Timeout was thrown
            return false;
        }

    } 

So for me absolutelly not clear how i can set "Server API key", "Device token" which is needed for to send notification for to mobile endpoint.

For java i found example how to do it but for C# not(

Yevhen
  • 791
  • 9
  • 24
  • Here is a related StackOverflow case which will help you on how to implement GCM in C# http://stackoverflow.com/questions/16248468/how-to-send-android-push-notifications-via-gcm-on-c-sharp-net – goblin Dec 30 '15 at 12:58

0 Answers0