- Organisiert eine Vielzahl von Skripten aus dem Root-Verzeichnis in thematische Unterordner, um die Übersichtlichkeit zu verbessern und die Migration vorzubereiten. - Verschiebt SuperOffice-bezogene Test- und Hilfsskripte in . - Verschiebt Notion-bezogene Synchronisations- und Import-Skripte in . - Archiviert eindeutig veraltete und ungenutzte Skripte in . - Die zentralen Helfer und bleiben im Root, da sie von mehreren Tools als Abhängigkeit genutzt werden.
73 lines
2.7 KiB
Python
73 lines
2.7 KiB
Python
import sys
|
|
import os
|
|
import json
|
|
import requests
|
|
from datetime import datetime, timedelta
|
|
from dotenv import load_dotenv
|
|
|
|
# Ensure we use the correct config and client from the connector-superoffice subdir
|
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), 'connector-superoffice')))
|
|
|
|
from superoffice_client import SuperOfficeClient
|
|
|
|
def run_final_test():
|
|
print("🚀 Starting Final Mailing Test for floke.com@gmail.com...")
|
|
|
|
# 1. Initialize Client
|
|
client = SuperOfficeClient()
|
|
if not client.access_token:
|
|
print("❌ Auth failed.")
|
|
return
|
|
|
|
# 2. Use Target Contact (Bremer Abenteuerland)
|
|
contact_id = 171185
|
|
print(f"✅ Using Contact ID: {contact_id}")
|
|
|
|
# 3. Use Created Person
|
|
person_id = 193092
|
|
print(f"✅ Using Person ID: {person_id} (floke.com@gmail.com)")
|
|
|
|
# 4. Attempt Shipment (Mailing)
|
|
print("📤 Attempting to create Shipment (the direct email send)...")
|
|
shipment_payload = {
|
|
"Name": "Gemini Diagnostics: Test Shipment",
|
|
"Subject": "Hallo aus der Gemini GTM Engine",
|
|
"Body": "Dies ist ein Testversuch für den direkten E-Mail-Versand via SuperOffice API.",
|
|
"DocumentTemplateId": 157, # Outgoing Email (ID 157 is confirmed from previous runs as typical)
|
|
"ShipmentType": "Email",
|
|
"AssociateId": 528, # API User RCGO
|
|
"ContactId": contact_id,
|
|
"PersonId": person_id,
|
|
"Status": "Ready"
|
|
}
|
|
|
|
try:
|
|
shipment_resp = client._post("Shipment", shipment_payload)
|
|
if shipment_resp:
|
|
print("✅ UNEXPECTED SUCCESS: Shipment created!")
|
|
print(json.dumps(shipment_resp, indent=2))
|
|
else:
|
|
print("❌ Shipment creation returned empty response.")
|
|
except Exception as e:
|
|
print(f"❌ EXPECTED FAILURE: Shipment creation failed as predicted.")
|
|
print(f"Error details: {e}")
|
|
|
|
# 5. Fallback: Create Appointment as "Proof of Work"
|
|
print("\n📅 Running Workaround: Creating Appointment instead...")
|
|
appt_resp = client.create_appointment(
|
|
subject="KI: E-Mail Testversuch an floke.com@gmail.com",
|
|
description="Hier würde der E-Mail-Text stehen, der aufgrund technischer Blockaden (Mailing-Modul/Identität) nicht direkt versendet werden konnte.",
|
|
contact_id=contact_id,
|
|
person_id=person_id
|
|
)
|
|
|
|
if appt_resp:
|
|
appt_id = appt_resp.get("appointmentId") or appt_resp.get("AppointmentId")
|
|
print(f"✅ Workaround Successful: Appointment ID: {appt_id}")
|
|
print(f"🔗 Link: https://online3.superoffice.com/Cust26720/default.aspx?appointment_id={appt_id}")
|
|
else:
|
|
print("❌ Workaround (Appointment) failed too.")
|
|
|
|
if __name__ == "__main__":
|
|
run_final_test()
|