После отправки сообщения я получаю сообщение об ошибке «Неверный идентификатор получателя» - PullRequest
0 голосов
/ 27 июня 2019
  1. Создано приложение.
    Я пытаюсь получить информацию о "боте".
    Я получаю следующую информацию:

enter image description here

2. Я пытаюсь отправить сообщение пользователю "members.1". Я использую:
- язык - C #; - WinForm; - рекомендации - https://developers.viber.com/docs/api/rest-bot-api/#send-message;
- для "Получателя": "01234567890A =" Я использую "id" из п.1 -> рисунок 4 -> id
Я использую код.

   class ViberMessage
{
    public string Receiver { get; set; }
    /// <summary>
    /// Minimum API version required by clients for this message (default 1)
    /// </summary>
    public int Min_api_version { get; set; } = 1;
    public ViberSender Sender { get; set; }
    public string Tracking_data { get; set; }
    public string Type { get; set; } = "text";
    public string Text { get; set; }

}

public class ViberSender
{
    public string Name { get; set; }
    public string Avatar { get; set; }
}



/// <summary>
///  Send a message. Member Account.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void bt_SendMessMemb_Click(object sender, EventArgs e)
{   
    string json = FillMember_2();

    Encoding utf = Encoding.UTF8;

    byte[] jsonUTF = utf.GetBytes(json);
    string jsonUTFstr = utf.GetString(jsonUTF);

    MessageWork messageWork = new MessageWork();        
    messageWork.ViberCall(jsonUTFstr);
}


public string FillMember_2()
{
    string json = "";
            var msg = new ViberMessage
        {
            Receiver = "Хu7LХХХ+wyD/ХХХХХХХХХ==", // text conditionally hidden
            Min_api_version = 1,
            Sender = new ViberSender
            {
                        Name = "Лидия",
                        Avatar = ""
            },
            Tracking_data = "tracking data",
            Type = "text",
            Text = "Test message - 1"
        };

        json = JsonConvert.SerializeObject(msg);
    return json;
}



class MessageWork
{
    public void ViberCall(string json)        
    {
        var request = (HttpWebRequest)WebRequest.Create("https://chatapi.viber.com/pa/send_message");
        request.ContentType = "application/json";
        request.Method = "POST";                        
        request.Headers.Add("X-Viber-Auth-Token", "49c9a7b9a9e7d096-XXXXXXXXXXXX-XXXXXXXXX"); // text conditionally hidden

        using (var streamWriter = new StreamWriter(request.GetRequestStream()))
        {
            streamWriter.Write(jsonN);
            streamWriter.Flush();
        }

        string resultStr;

        var response = (HttpWebResponse)request.GetResponse();
        using (var streamReader = new StreamReader(response.GetResponseStream()))
        {
            var result = streamReader.ReadToEnd();

            resultStr = result.ToString();
        }

        jsonN = jsonN + "/r/n "  + resultStr;       
    }
}

В строке "jsonN = jsonN +" \ r \ n "+ resultStr; "Я получаю

{"Receiver":"Хu7LХХХ+wyD/ХХХХХХХХХ==", // text conditionally hidden
"Min_api_version":1,
"Sender":{"Name":"Лидия","Avatar":""},
"Tracking_data":"tracking data","Type":"text",
"Text":"Test message - 1"}

 {"status":999,
 "status_message":"Bad receiver ID",
 "message_token":5324763260407665007,
 "chat_hostname":"SN-CHAT-05_"}

Вопрос.
1. Почему я получаю сообщение об ошибке «status_message»: «Неверный идентификатор получателя»?
2. Как погасить эту ошибку?

...