Neuigkeiten:

Ist euer Problem gelöst, dann bitte den Knopf "Thema gelöst" drücken!

Mobiles Hauptmenü

URL Shorter Service nutzen.

Begonnen von datekk, Januar 17, 2017, 11:01:21

⏪ vorheriges - nächstes ⏩

datekk

Mir geht es um den Google URL Shortener (https://goo.gl/)

Ich möchte gern von Access aus eine URL an diesen Service übergeben und die Short URL in eine Tabelle ablegen. Weiterhin soll es möglich sein, die Klickrate dieser URL abzurufen ggf. auch weitere Analyticsdaten.

Wie kann ich hier vorgehen? Es gibt hier sicher von Google zu diesem Service wieder eine API...

Danke schon mal :)
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

datekk

Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Lachtaube

Soweit ich weiß, benötigst Du für die Nutzung des Google URL Shortener Dienstes von Google einen Developer-Key. Damit kann man dann Requests entsprechend der API posten.
Grüße von der (⌒▽⌒)

datekk

#3
Hi Lachtaube,

ja, aber wie baue ich die URL Abfrage auf? Ich finde immer nur Beispiele in C#.

Ich habe folgendes probiert:
https://www.googleapis.com/urlshortener/v1/url?longurl=http://google.de

Damit erhalte ich aber immer folgende Fehlermeldung:
{
"error": {
  "errors": [
   {
    "domain": "global",
    "reason": "required",
    "message": "Required parameter: shortUrl",
    "locationType": "parameter",
    "location": "shortUrl"
   }
  ],
  "code": 400,
  "message": "Required parameter: shortUrl"
}
}


Die URL will die Daten anders erhalten. In einem "Request Body" ??? Hier ein Beispiel:
POST https://www.googleapis.com/urlshortener/v1/url?key={YOUR_API_KEY}
{
"longUrl": "www.facebook.com"
}


Siehe: https://developers.google.com/url-shortener/v1/url/insert

Nur wie mache ich das?

Ich habe noch das hier probiert:
https://www.googleapis.com/urlshortener/v1/url?key=AIzaSyCAuFo4fc5cyf2UB{"longURL":"http://facebook.com"}

Hier erhalte ich aber die gleiche Fehlermeldung wie oben...
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps

Lachtaube

Ungetestet:Public Function GetGgl$(ByVal Target$)

   Const API_KEY$ = "Dein geheimer API-Key"

   Dim jsonData$

   jsonData = "{""longUrl"": """ & Target & """}"

   With CreateObject("WinHttp.WinHttpRequest.5.1")
      .Open "POST", "https://www.googleapis.com/urlshortener/v1/url?key=" & _
                    API_KEY, False
      .setRequestHeader "Content-Type", "application/json"
      .send jsonData

      If .status = 200 Then GetGgl = .responseText
   End With
End Function
Grüße von der (⌒▽⌒)

datekk

#5
 ;D ;D ;D

Danke Dir. Habs mit ganz viel Google nun auch hinbekommen. Man muss erstmal wissen, wonach man Google erstmal befragen muss.

Hier meine Lösung:

Achtung: Vorher Verweis auf Microsoft XML, v6.0 setzen:

Private Sub URLShorterTest()

    Dim xmlhttp As New MSXML2.XMLHTTP60, myurl As String
   
    myurl = "https://www.googleapis.com/urlshortener/v1/url?key=AIzaSyCAuFo4fc5cyf2UB"
    With xmlhttp
   
    .Open "POST ", myurl
    .setRequestHeader "Content-Type", "application/json"
    .Send "{'longUrl': 'http://www.facebook.com/'}"
    MsgBox (.responseText)
   
    End With
   
End Sub


PS: Der Key ist natürlich gekürzt... Holt Euch Euren eigenen  :P ;D
Access 2016 mit SQL Server Backend. Bereits umgesetzt: Access mit MS SQL Backend,  ADODB Formularbindung, Streamen von Dateien zum SQL Server und zurück (Filestream), Drag&Drop Dateiupload zum Server, CTI / TAPI Integrierung in Access Anwendung - Nutzung auch über Remote Desktop, selbst aktualisierendes Access Frontend auf entfernten Rechnern (Upgrade). Berichte / Kreuztabellen mit SQL Server Backend, Mail Tagging, Outlook Steuerung über Access und umgekehrt // Grundwissen in .Net Core & Blazor Apps