Alka ha scritto:
L'unica cosa che ti posso suggerire è di verificare la validità del pacchetto JSON dei dati che stai inviando (tipo JSON.NET), e magari generandolo usando librerie invece che concatenandolo come stringa.
Ciao!
Fatto!
Ho rivisto un po di cose, ho creato la stringa json con "JsonConvert.SerializeObject", ora mi restituisce questo messaggio:
{"success":false,"message":"Sorry, we were unable to process your request. Please try again."}
Sono dubbioso se sto sbagliando nel creare il campo:
inputContexts = "{'INTEREST_LABEL':'Ti propongo un nuovo business eccezionale'}",
oppure altro..., nella documentazione non è spiegato come formattarlo e con quali dati, sono risalito un po tramite l'esempio JavaScript, ma possibile che sbaglio, questo è quello che chiede:
"inputContexts": {"<USE-CASE CONTEXT-INPUT KEY-LABEL>": "<VALUE>"}
Ma cosa è: <USE-CASE CONTEXT-INPUT KEY-LABEL> ???
Presumo che: <VALUE> sua la frase dal cui estrapola le keywords per poi creare il post, quindi io ho inserito questo come testo: "Ti propongo un nuovo business eccezionale!"
public class RytrData
{
public string languageId { get; set; }
public string toneId { get; set; }
public string useCaseId { get; set; }
public string inputContexts { get; set; }
public string variations { get; set; }
public string userId { get; set; }
public string format { get; set; }
public string creativityLevel { get; set; }
}
private void GetRytrContent(string _apyKey, string _langID, string _toneID, string _usecaseID)
{
WebRequest wr = WebRequest.Create("https://api.rytr.me/v1/ryte");
wr.ContentType = "application/json";
wr.Method = "POST";
wr.Headers.Add("Authentication", "Bearer " + _apyKey);
RytrData RytrData = new RytrData
{
languageId = _langID,
toneId = _toneID,
useCaseId = _usecaseID,
inputContexts = "{'INTEREST_LABEL':'Ti propongo un nuovo business eccezionale'}",
variations = "1",
userId = "USER1",
format = "text",
creativityLevel = "default"
};
var json = JsonConvert.SerializeObject(RytrData, Formatting.Indented);
using (StreamWriter sw = new StreamWriter(wr.GetRequestStream()))
{
string data = json.ToString();
sw.Write(data);
}
WebResponse httpResponse = (WebResponse)wr.GetResponse();
using (StreamReader streamReader = new StreamReader(httpResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
TxtDisplay.Text = result.ToString(); //{"success":false,"message":"Sorry, we were unable to process your request. Please try again."}
}
}