OVH Community, votre nouvel espace communautaire.

Crédit SMS restant en C#


Luigi_B
09/09/2015, 11h02
Bonjour.

Très bien, n'hésitez pas à revenir vers nous au besoin.

Cordialement.

Luigi.B

user_2015
09/09/2015, 09h08
Bonjour,

J’ai réussi à me débloquer, j'ai fait une erreur dans mon code.

Merci beaucoup pour votre aide et désolé pour le dérangement.

Cordialement,

PierrYves L
08/09/2015, 17h19
Bonjour,

Je viens de faire remonter votre demande afin de vous apporter une aide sur ce point.

Je reviens vers vous au plus vite.

Bien cordialement,
PierrYves L.

user_2015
08/09/2015, 17h01
Bonjour,

J’ai mis les droits comme vous l'avez expliqué précédemment, j'ai toujours la réponse : opération interdite.

voici ce que j'ai mis :
GET /sms/
GET /sms/*
GET/sms/*/jobs/
POST /sms/*/jobs/

Je pense que le problème vient de mon code, pouvez-vous mettre un exemple. Ou m'indiquer la marche à suivre.

Merci d'avance.

glaudioman
13/02/2015, 22h05
Merci !

Effectivement, je n'avais pas mis les droits en get sur /SMS/*/ sur les clés générés.

Ça marche nickel !!!!

Merci encore !

Charles.A
13/02/2015, 10h43
Bonjour,

Pour récupérer vos crédits, vous devez générer une consumer key avec les droits en GET sur /sms/{serviceName} ou /sms/*
Le code dans votre premier message devrait fonctionner.

En appelant cette methode : /sms/{serviceName} avec le bon serviceName et avec un Body vide, vous allez recevoir une réponse en json. A vous après de la formater pour récupérer le champ "creditsLeft"

Vous pouvez tester sur la console : https://api.ovh.com/console/#/sms/{serviceName}#GET


voici par exemple un exemple de réponse :

{


smsResponse: {
text: ""
cgiUrl: http://www.XXXXXX.com/smsgateway.php

trackingOptions: [

{
target: "XXXX@XXXX.com"
media: "email"
}
]
trackingDefaultSmsSender: ""
responseType: "cgi"
}
status: "enable"
creditsLeft: 54
name: "sms-XXXXX-1"
userQuantityWithQuota: 0
description: ""
callBack: ""
creditThresholdForAutomaticRecredit: 0
creditsHoldByQuota: 0
automaticRecreditAmount: null

templates: {
customizedEmailMode: false
emailBody: null
customizedSmsMode: false
emailSubject: null
smsBody: null
emailFrom: null
}

}

glaudioman
12/02/2015, 21h18
Bonjour,

Merci pour la réponse, mais comment intégrer cette syntaxe dans mon code ?

J'ai essayé les codes suivants :

String QUERY = "https://eu.api.ovh.com/";
String BODY = @"creditsLeft: {fullType: ""double"", canBeNull: 0,type: ""double"",readOnly: 1}";

il me retourne le code d'une page HTML...
ou
String QUERY = "https://eu.api.ovh.com/creditsLeft: {fullType: ""double"", canBeNull: 0,type: ""double"",readOnly: 1}";
String BODY = "";

Il me met opération interdite.

Comment intégrer cette requète dans mon code ?

Merci d'avance.

PierrYves L
12/02/2015, 17h07
Bonjour glaudioman,

La requête a implémenter sur votre code est la suivante:

creditsLeft: {

fullType: "double"
canBeNull: 0
type: "double"
readOnly: 1

}

Bien cordialement,
PierrYves L

glaudioman
12/02/2015, 08h07
Bonjour,

Je développe un programme en c# pour envoyer des SMS.

Pour l'envoi, pas de souci, mais je ne trouve pas la syntaxe pour récupérer les crédits restants.

En me basant sur la récup du compte, voici mon code :

String METHOD = "GET";
String QUERY = "https://eu.api.ovh.com/1.0/sms/" + ServiceName + "/";
String BODY = "";

Int32 unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
String TSTAMP = (unixTimestamp).ToString();

//calcul de la signature
String signature = "$1$" + HashSHA1(AS + "+" + CK + "+" + METHOD + "+" + QUERY + "+" + BODY + "+" + TSTAMP);
Console.WriteLine(signature);

//Creation de la requete
HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(QUERY);
req.Method = METHOD;
req.ContentType = "application/json";
req.Headers.Add("X-Ovh-Application:" + AK);
req.Headers.Add("X-Ovh-Consumer:" + CK);
req.Headers.Add("X-Ovh-Signature:" + signature);
req.Headers.Add("X-Ovh-Timestamp:" + TSTAMP);

try
{
//Récupération du résultat de l'appel
HttpWebResponse myHttpWebResponse = (HttpWebResponse)req.GetResponse();

mais il me retourne l'erreur "interdit".

Quelle est la bonne requête sur la ligne
String QUERY = "https://eu.api.ovh.com/1.0/sms/" + ServiceName + "/";
pour récupérer le crédit restant ?

Merci d'avance !