C# SDK
Wir empfehlen, direkt gegen die API zu programmieren, da das technische Referenzhandbuch und Ihre KI dies unkompliziert machen. Ein C# SDK kann mit der OpenAPI3-Spezifikation unserer API und dem OpenAPI-Generator erzeugt werden. Falls Sie jedoch ein SDK wünschen, empfehlen wir die Verwendung des bereitgestellten generierten Projekts, da es Korrekturen für einige Probleme wie nullable Felder enthält.
Hier klicken für das C#-Repository..
Das Paket enthält eine eigene Dokumentation (im Ordner docs/), aber die folgenden Beispiele zeigen Ihnen, wie Sie beginnen können.
Holen Sie sich Ihren API-Schlüssel
-
Melden Sie sich für ein Testkonto an.
-
Konfigurieren Sie die API, wenn Sie dazu aufgefordert werden, und schicken Sie eine E-Mail an den Support, um einen API-Schlüssel zu erhalten. Sie müssen ein gewisses Verständnis für die Verwendung der REST API nachweisen, geben Sie in Ihrer E-Mail Folgendes an: Ihren Firmennamen und Ihre Adresse, Ihren Namen und Ihre Rolle, beschreiben Sie Ihren Anwendungsfall und geben Sie eine kurze Zusammenfassung Ihrer Programmier-/REST-Erfahrung.
-
Sobald er ausgestellt wurde, ist Ihr API-Schlüssel in der Webanwendung verfügbar. Sie werden sehen, dass Sie sich im Sandbox-Modus mit einer Beschränkung von 100 Aufrufen pro Stunde befinden.
Ihr API-Schlüssel wird im "Authorization"-Header übergeben und hat das Format: Bearer <your-api-key>.
Ihr API-Schlüssel wird im Developer Portal eindeutig angezeigt.
Holen Sie sich das SDK und Beispielprojekte
Klonen Sie mit Ihrem bevorzugten Git-Tool das C# SDK-Repository.
git clone https://github.com/legalesign/LegalesignCsharpSDK.git legalesignSDK
Konfigurieren Sie das Beispielprojekt:
Öffnen Sie die LegalesignCsharpSDK.sln und bauen Sie das Projekt. Sie sollten drei Projekte in der Lösung sehen, wir konzentrieren uns auf LegalesignTest, das Ihnen den Einstieg in die REST-API-Aufrufe erleichtert.
Um Zeit zu sparen, können Sie Ihren Benutzernamen, das Geheimnis, den Gruppennamen, die Ziel-E-Mail, den Vor- und Nachnamen als Text-Eigenschaften für txtUsername, txtSecretKey usw. in Form1 hinzufügen. Wenn nicht, müssen Sie diese beim Ausführen des Winform-Projekts angeben (stellen Sie sicher, dass dies als Startprojekt markiert ist). Wenn Sie sie im Code fest codieren, denken Sie daran, diese Informationen zu entfernen, sobald Sie mit dem Projekt fertig sind.
Schauen wir uns den ersten Codeblock in Form1.cs an:
private Configuration makeConfig() {
Configuration c = new Configuration();
c.AddApiKey("Authorization", $"Bearer {txtSecretKey.Text}");
return c;
}
Sie sehen, wie hier der von Ihnen angegebene Benutzername und das Geheimnis verwendet und für jede spätere API-Aufrufkonfiguration übergeben werden. So werden API-Aufrufe autorisiert.
Testen Sie eine GET-Anfrage:
Stellen wir sicher, dass Sie eine einfache GET-Anfrage durchführen können, um zu überprüfen, ob Ihre Authentifizierung korrekt konfiguriert ist.
Der folgende Code wird ausgeführt, wenn Sie auf die Schaltfläche Get Groups klicken. Nehmen Sie sich etwas Zeit, um zu beachten, wo die Konfigurationsinformationen über makeConfig() übergeben werden. Führen Sie das Projekt aus, geben Sie Ihren Benutzernamen und Schlüssel in die Felder ein, falls Sie diese nicht als Text-Eigenschaft eingetippt haben, und klicken Sie auf die Schaltfläche Get Groups.
private void btnCall_Click(object sender, EventArgs e)
{
GroupApi group = new GroupApi(makeConfig());
GroupListResponse groupList = group.GetGroups();
richTextBox1.Text = groupList.ToJson();
}
Wenn erfolgreich, erhalten Sie eine JSON-Liste Ihrer Gruppen.
Wenn nicht, prüfen Sie bitte, ob Ihr Authorization-Wert korrekt ist.
Dieser Code ruft alle Dokumente ab, die auf eine Unterschrift warten, ein häufiger Anwendungsfall. Testen Sie dies, indem Sie die Schaltfläche Get Documents ausführen und untersuchen.
private void button2_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());
DocumentListResponse documentList = docs.GetDocuments();
richTextBox1.Text = documentList.ToJson();
}
Die Aufrufe 'get_statuses()' und 'get_status()' sind schnellere Möglichkeiten, grundlegende Dokumentinformationen abzufragen.
Sie sollten beginnen zu verstehen, wie das SDK funktioniert. Gehen Sie zurück zur Readme-Datei des Pakets, dort finden Sie alle API-Objekte zum Ausprobieren und alle deren Methoden.
Testen einer POST-Anfrage
Als Nächstes senden wir etwas benutzerdefiniertes HTML zum Signieren in einem API-Aufruf, danach laden wir ein PDF hoch und versenden dieses.
Senden eines HTML-Dokuments zur Unterschrift:
Hier ist eine kleine Menge HTML für Demo-Zwecke, das ein Signaturfeld enthält. Ersetzen Sie die Werte für Gruppe, Name und E-Mail.
private void btnPost_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());
List<DocumentSignerPost> signers = new List<DocumentSignerPost>();
signers.Add(new DocumentSignerPost(email: txtEmail.Text, firstname: txtFirstname.Text, lastname: txtLastname.Text));
//You must provide group id as lowercase
DocumentPost dp = new DocumentPost(
group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
name: "dotnetdocument",
text: rtbBodyHTML.Text,
signers: signers,
doEmail: true,
footerHeight:30,
footer: "Legalesign ID: {{doc_id}}");
try
{
InlineResponse201 resp = docs.PostDocument(dp);
richTextBox1.Text = resp.ToJson();
}
catch (Exception ex) {
throw ex;
}
}
Woher wissen wir, dass es durchgegangen ist? OpenAPI wirft eine Ausnahme bei Nicht-2XX-Antworten. Sie sollten alle Ihre Anfragen in einen try/catch-Block einschließen.
Jedes Mal, wenn Sie POST verwenden, werden Sie wahrscheinlich die neue Objekt-ID benötigen. Diese befindet sich im Location-Header der Antwort. In unserem nächsten Beispiel sehen wir, wie man ein PDF hochlädt, um es an Unterzeichner zu senden, und die neue Template-ID zurückbekommt.
PDF hochladen und senden
Sie werden höchstwahrscheinlich Text-Tags innerhalb Ihrer PDFs verwenden, um zu definieren, wo Personen unterschreiben oder Formulare ausfüllen sollen. Mit dem Parameter processTags=true teilt das System mit, Ihr Dokument zu durchsuchen und Felder für Informationen und Unterschriften des Empfängers zu erstellen. Ein grundlegendes Beispiel für ein PDF mit Tags ist im Stammverzeichnis des SDK-Projekts enthalten.
Laden wir ein PDF hoch, verwenden wir die 'with_http_info'-Variante des POST-Aufrufs, um die ID zu erhalten.
private void btnUploadPdf_Click(object sender, EventArgs e)
{
DialogResult result = openFileDialog1.ShowDialog();
if (result == System.Windows.Forms.DialogResult.OK)
{
TemplatepdfApi pdf = new TemplatepdfApi(makeConfig());
// Get the file and convert the contents to a base64 byte array.
Byte[] bytes = File.ReadAllBytes(openFileDialog1.FileName);
String contents = Convert.ToBase64String(bytes);
Byte[] encodedBytes = Convert.FromBase64String(contents);
try
{
// Upload the pdf for our group to use with a title and a tag
ApiResponse <object> response = pdf.PostPdfTemplateWithHttpInfo(new TemplatePdfFieldPost(group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
pdfFile: encodedBytes, processTags: true, title: "test tagged document"));
// Just to demonstrate how to read response headers we'll put the returned
// header in the output rich text box. The 'Location' header contains the new
// Template ID.
richTextBox1.Text = JsonConvert.SerializeObject(response.Headers);
// We'll save this so we can use it when calling Send with Template
txtPDFLocation.Text = response.Headers["Location"];
}
catch (Exception ex)
{
throw ex;
}
}
}
Da wir process_tags auf true gesetzt haben, wurden alle Tags verarbeitet und Ihr PDF ist einsatzbereit. Wie zuvor benötigen wir die ID für das PDF, um es versenden zu können. Glücklicherweise haben wir sie im Textfeld txtPdfLocation behalten.
Der letzte Codeausschnitt aus Send with Template zeigt, wie wir diese PDF-Location verwenden, um ein vorab geladenes Dokument zum Signieren zu senden.
private void btnSendTemplate_Click(object sender, EventArgs e)
{
DocumentApi docs = new DocumentApi(makeConfig());
List<DocumentSignerPost> signers = new List<DocumentSignerPost>();
signers.Add(new DocumentSignerPost(email: txtEmail.Text, firstname: txtFirstname.Text, lastname: txtLastname.Text));
//You must provide group id as lowercase
DocumentPost dp = new DocumentPost(
group: $"/api/v1/group/{txtGroupName.Text.ToLower()}/",
name: "dotnetdocument",
template: txtPDFLocation.Text,
signers: signers,
doEmail: true,
footerHeight: 30,
footer: "Legalesign ID: {{doc_id}}");
try
{
InlineResponse201 resp = docs.PostDocument(dp);
richTextBox1.Text = resp.ToJson();
}
catch (Exception ex)
{
throw ex;
}
}
Legen Sie los mit dem Programmieren
Sehen Sie sich unbedingt die von OpenAPI generierte Dokumentation für verschiedene Aufruftypen und Optionen an.
Einige häufige Stolperfallen sind:
Der Gruppenname muss exakt mit einem bereits in Ihrer Organisation vorhandenen übereinstimmen.
Ihre Anfrage wird abgelehnt, wenn Ihre Zugangsdaten falsch, veraltet oder gesperrt sind.
Viel Spaß beim Programmieren!