Laden...

[Erledigt] Wie kann ich mittels C# URLs durch AdFly kürzen?

Erstellt von Odin008 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.589 Views
O
Odin008 Themenstarter:in
58 Beiträge seit 2013
vor 6 Jahren
[Erledigt] Wie kann ich mittels C# URLs durch AdFly kürzen?

Morgen,

ich möchte mittels C# URLs durch AdFly kürzen.
Ich habe keine ahnung wie der haken ist oder was falsch ist...
Evtl. kann mir hier jemand helfen.





string adFlyUserId = "UserID";
            string adFlyPublicKey = "PublicKEY";
            string adFlySecretKey = "PrivateKEY";

            int unixTimestamp = (int)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;
            string monthName = DateTime.Now.ToString("MMMM", new System.Globalization.CultureInfo("en-US"));
            string adFlyBaseUrl = "http://api.adf.ly/v1/";
            string adFlyQueryString = string.Format(@"_user_id={0}&_api_key={1}&_timestamp={2}&date={3}", adFlyUserId, adFlyPublicKey, unixTimestamp, monthName);
            string adFlyHash = string.Empty;
            byte[] keyByte = Encoding.GetEncoding(28591).GetBytes(adFlySecretKey);
            byte[] messageBytes = Encoding.GetEncoding(28591).GetBytes(adFlyQueryString);
            using (var hmacsha256 = new HMACSHA256(keyByte)) {
                byte[] hashmessage = hmacsha256.ComputeHash(messageBytes);
                adFlyHash = ByteToString(hashmessage);
            }
            string adFlyEndPoint = adFlyBaseUrl + "publisherStats?" + adFlyQueryString + "&_hash=" + adFlyHash;

            WebRequest request = WebRequest.Create(adFlyEndPoint);
            WebResponse response = request.GetResponse();
            Stream dataStream = response.GetResponseStream();
            StreamReader reader = new StreamReader(dataStream);
            string responseFromServer = reader.ReadToEnd();
            Console.Write(responseFromServer);
            Console.ReadKey();
        }

        private static string ByteToString(byte[] buff) {
            string sbinary = "";
            for (int i = 0; i < buff.Length; i++)
                sbinary += buff[i].ToString("X2");

            return (sbinary);
        }

Als rückmeldung erhalte ich

Fehlermeldung:
{"errors":[{"code":7,"msg":"Authentication failed. Hashes do not match."}],"warnings":[],"data":null,"page":{"current":1,"total":1}}

#Edit:

Problem gelöst.
Parameter in der Doc sind ein wenig irreführend.
Ebenso passte die HMACSHA256 nicht

C
2.121 Beiträge seit 2010
vor 6 Jahren

Wo liegt der Sinn von so etwas? Außer dass jemand der so eine URL sieht nicht mehr weiß wohin sie führt, was ich aber eher als gravierenden Nachteil ansehe.
Ich persönlich mag so etwas gar nicht und kann auch nicht erkennen wozu es gut sein soll. URLs tippt heutzutage keiner mehr von Hand, die werden kopiert und eingefügt. Warum also darf der Nutzer nicht mehr sehen wohin es geht?

O
Odin008 Themenstarter:in
58 Beiträge seit 2013
vor 6 Jahren

Das ist mir bewusst, jedoch brauche ich es.
Adfly schaltet ja Werbung und durch die Werbung macht der nutzer gewinn.
Da die Seite kein Adsense nutzen kann und sowieso keine Werbung direkt geschaltet wird aber die kosten gedeckt werden müssen nutzen sie Adfly und die User sind damit auch gut zufrieden da sie eben keine werbung auf der eigendlichen Seite haben sondern nur über den Adfly link und diesen können sie ja nach 5Sec. überspringen.

Und warum nicht direkt die Website genutzt wird zum kürzen der URLs ist ganz einfach
derzeit stehen 14,356 URLs an die gekürzt werden müssen und täglich kommen zwischen
30 - 100 URLs dazu.

Auserdem geht es nicht darum das der User nicht sehen darf worauf die URL verweist sondern viel mehr um die Werbe einnahmen. Die User sind informiert das der Adfly Link auf eine andere Seite verweist. Auserdem ist es immer die selbe Seite auf die verwiesen wird nur eben ändert sich das verzeichnis.