Passer au contenu principal
Chaque exemple ci-dessous n’utilise que fireflo.proto et la bibliothèque gRPC standard de son langage. Remplacez sms.example.com:8090 par l’adresse que vous donne votre fournisseur, et gardez le mot de passe hors de votre code — les exemples le lisent depuis SMS_PASSWORD.
Les exemples se connectent sans TLS (-plaintext, un canal non sécurisé), comme vous le feriez vers une passerelle sur un réseau privé. Si votre fournisseur vous donne une adresse TLS — souvent le port 443 — utilisez plutôt un canal sécurisé ; chaque section montre le changement d’une ligne.

grpcurl

Grâce à la réflexion serveur, grpcurl n’a besoin d’aucun fichier proto. Si votre fournisseur a désactivé la réflexion, ajoutez -proto fireflo.proto à chaque commande.
Avec TLS, retirez -plaintext. Un refus affiche le code gRPC et le message ; ajoutez -v pour voir les trailers, y compris le détail d’erreur.

Python (grpcio)

Générez les stubs une fois :

Login, le wrapper de reconnexion et Send

SendStream

Accusés : Pull, ou Subscribe

Un Subscribe qui se termine par SESSION_EXPIRED ou UNAVAILABLE est rouvert après un nouveau Login ; ce que vous n’aviez pas acquitté est livré à nouveau.

Java (grpc-java)

Générez avec le plugin protobuf de Gradle ou de Maven et le plugin protoc-gen-grpc-java ; les classes arrivent dans le package fireflo.v1. Il vous faut grpc-netty-shaded (ou un autre transport), grpc-protobuf et grpc-stub.

Login, le wrapper de reconnexion et Send

Sur une StatusRuntimeException venant de sendOne, lisez errorDetail(e) : pour OUTCOME_UNKNOWN, ne réessayez qu’avec le même clientRef ; quand d.hasRetryAfterSeconds(), attendez ce délai et réessayez ; sinon, corrigez la requête.

SendStream

onNext s’exécute sur les threads propres de gRPC, donc les résultats sont lus pendant que vous écrivez. Pour un très gros lot, vérifiez isReady() sur un ClientCallStreamObserver (ou utilisez ClientResponseObserver) avant chaque écriture, pour que votre processus ne mette pas en tampon ce que la passerelle ne lit pas encore.

Accusés avec Pull

Go (grpc-go)

Générez avec protoc --go_out=. --go-grpc_out=. fireflo.proto (plugins protoc-gen-go et protoc-gen-go-grpc). Le nom du package est fireflov1 ; le chemin d’import dépend de votre module et de vos réglages --go_opt.

Login, le wrapper de reconnexion et Send

Les champs proto optionnels sont des pointeurs en Go : définissez-les avec proto.String, proto.Bool et proto.Int32, et lisez-les avec les méthodes Get… générées.

Accusés avec Subscribe

Voir aussi

Erreurs et codes de statut

Ce que signifie chaque refus, et lesquels réessayer.

Le fichier proto

Le contrat à partir duquel ces exemples sont générés.