| 

.NET C# Java Javascript Exception

1
YouTubeRequestSettings settings = new YouTubeRequestSettings("app", developerKey, username, password);
YouTubeRequest request = new YouTubeRequest(settings);

Subscription s = new Subscription();
s.Type = SubscriptionEntry.SubcriptionType.channel;
s.UserName = "ChannelName";
request.Delete(s);

Dann markiert er das "request.Delete(s);" und spuckt:

{"Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."}

aus.

Aber ich weis nicht warum, im Developers-Guid:

http://code.google.com/intl/de/apis/youtube/2.0/developers_guide_dotnet.html

ziemlich weit unten, ist das so beschrieben, wie ich es gemacht habe.

Wäre nett wenn mit jemand helfen kann. : )
News:
02.04.2011
ZebRa 221 1 8
1
sorry, aber ich muss diese ganz blöde frage zu erst stellen, "developer key and client ID" hast du?
pinchbeck 02.04.2011
Kein Problem.
Ich hab den "Devolper Key" die Client ID wurde abgeschafft die gibts nicht mehr, hab ich gelesen, berichtige mich wenn ich falsch liege.

Aber beim Anmelden hab ich auch nur den Key bekommen und keine ID.

Abos hinzufügen kann ich, aber das löschen geht nicht.
ZebRa 02.04.2011
ich gebe dir ein +1 für die frage, hab wieder was neues dazu gelernt ;]
pinchbeck 02.04.2011
5 Antworten
1
Hab die Lösung:

Feed<Subscription> sub = request.GetSubscriptionsFeed(username);

foreach(Subscription entry in sub.Entries)
{
request.Delete(entry);
}


Trotzdem danke an die, die mir helfen wollten.
02.04.2011
ZebRa 221 1 8
1
schön ;) und danke für das posten der lösung, das tun nicht viele.
pinchbeck 02.04.2011
War ein bisschen bescheuert beschrieben in der Hilfe.
Jetzt hab ich noch das Problem, dass wenn es zu viele Abos sind, bricht er ab. Geht das ganze zu schnell?
Wegen der schleife.

Noch eine Frage:
(Das ich nicht gleich was neues aufmachen muss)

- Meine Progressbar ist noch nicht voll aber es ist schon fertig?

http://ideone.com/mikes
ZebRa 02.04.2011
1
wie wär's mit batch-delete statt einer schleife? http://code.google.com/apis/gdata/docs/batch.html
pinchbeck 02.04.2011
Wie geht das mit C#?
ZebRa 02.04.2011
kannst du damit was anfangen?
http://google-gdata.googlecode.com/svn/docs/folder15/AllMembers_T_Google_GData_Client_GDataBatchFeedData.htm

und suche auf dieser seite http://code.google.com/apis/base/samples/vb/Form1.vb nach "GDataBatchFeedData", die machen da ein update, aber lässt sich bestimmt in ein delete umwandeln
pinchbeck 02.04.2011
Mmm... ich bekomm es irgentwie nicht hin.
ZebRa 02.04.2011
0
Kannst du mit das mit dem Batch erklären?
Wäre echt nett.
Vil. auch über ICQ, wenn du willst.
02.04.2011
ZebRa 221 1 8
mach ich, sobald ich das sleber gecknackt habe ;P bin gerade beim installieren des APIs.
pinchbeck 02.04.2011
0
ich hab's ;P

für mich funktioniert dieser Code:

YouTubeRequestSettings settings = new YouTubeRequestSettings(applicationName, developerKey, userName, passWord);
settings.UseSSL = true;
YouTubeRequest request = new YouTubeRequest(settings);

Feed<Subscription> feed = request.GetSubscriptionsFeed(user);
feed.AutoPaging = true;

List<Subscription> entries = feed.Entries.Where(e => e.UserName == subscription1 || e.UserName == subscription2).ToList();

foreach (Subscription subscription in feed.Entries)
Debug.WriteLine(subscription.UserName);

request.Batch(entries, feed, GDataBatchOperationType.delete);


oder noch kürzer so:

YouTubeRequestSettings settings = new YouTubeRequestSettings(applicationName, developerKey, userName, passWord);
settings.UseSSL = true;
YouTubeRequest request = new YouTubeRequest(settings);

Feed<Subscription> feed = request.GetSubscriptionsFeed(user);

List<Subscription> entries = new List<Subscription>()
{
new Subscription() { UserName = subscription1 },
new Subscription() { UserName = subscription2 }
};

// bzw
// List<Subscription> entries = feet.Entries.ToList();

request.Batch(entries, feed, GDataBatchOperationType.delete);
02.04.2011
pinchbeck 373 1 8
Danke für die Antwort.

new Subscription() { UserName = subscription1 }
new Subscription() { UserName = subscription2 }

Kannst du mir das erklären?
ZebRa 02.04.2011
subscription1 ,subscription2 = im aktuelle Kontext nicht vorhanden.
ZebRa 02.04.2011
das selbe wie:

List<Subscription> entries = new List<Subscription>();
Subscription s1 = new Subscription();
s1.UserName= subscription1;
Subscription s2 = new Subscription();
s2.UserName= subscription2;
entries.Add(s1);
entries.Add(s2);
pinchbeck 02.04.2011
1
ahh, sorry, das sind Strings, youtube bentuzername
pinchbeck 02.04.2011
Ah, okay xD warum 2? Geht da auch 1ner?
ZebRa 02.04.2011
du machst das auch doch:

Subscription s = new Subscription();
s.Type = SubscriptionEntry.SubcriptionType.channel;
s.UserName = "ChannelName";
pinchbeck 02.04.2011
weil das hilfsvariablen sind, ich wollte den eigentlichen namen des channels nicht verraten
pinchbeck 02.04.2011
1
meinst du ob man nur eine Subscription in die liste packen kann? klar, ich wollte halt mit zwei versuchen damit der batch-delete mehr sinn hat
pinchbeck 02.04.2011
Okay, danke jetzt kapier ich was du da gemacht hast. : )
Gleich mal testen...
ZebRa 02.04.2011
1
noch was, da du alles löschen willst, kannst einfach schreiben:

List<Subscription> entries = feet.Entries.ToList();

und damit auch alles aufgelistet wird, unbedingt AutoPaging einschalten:

feed.AutoPaging = true;
pinchbeck 02.04.2011
0
Wie und wo mache ich das mit der ProgressBar "progressBar.PerformStep();"
02.04.2011
ZebRa 221 1 8
ZebRa 221 1 8
lies meinen letzen kommentar ;] ... mit dem batch brauchst du kein progressbar mehr denn alles wird automatisch gelöscht, vielleicht ein warte-balken
pinchbeck 02.04.2011
es gibt keine "Steps" mehr, alle subscriptions werden durch einen einzigen aufruf entfernt, du übergibst der methode schon alle zu löschende subscriptions
pinchbeck 02.04.2011
Aso okay, dachte man kann die ProgressBar noch einbauen. Naja okay ein Wartebalken tut auch.

Bedanke mich nochmal bei dir. :Daumenhoch:
ZebRa 02.04.2011
bitte als beantwortet markieren wenn meine lösung stimmt damit andere nicht vergeblich noch suchen :P
pinchbeck 02.04.2011
Leider löscht er nicht alle, wenn man mehrere Abos hat. (ca. 50)
Gibts vielleicht eine Möglichkeit, das ganze mit dem batch zu machen aber alles einzeln? Das ich das ich auch ein zähler hochzählen lassen kann? Und die ProgressBar füllen? Oder geht das nicht?
ZebRa 02.04.2011
hast du diese zeile?
feed.AutoPaging = true;
sonst werden nur die ersten 25 geholt
pinchbeck 02.04.2011
sub = request.GetSubscriptionsFeed(username);
sub.AutoPaging = true;

List<Subscription> entries = sub.Entries.ToList();
ZebRa 02.04.2011
das löschen von allen subscriptions kann ich leider nicht mehr testen ;P denn ich habe sie lange gesammelt und will die einstellungen nicht kaputt machen ;]
pinchbeck 03.04.2011
Habs grad nochmal getestet von 73 Abos hatte ich noch 46 also wurden 27 gelöscht.... mmm...
ZebRa 03.04.2011
Hast du ICQ? Dann geb ich dir ein Acc. da sind mehrere Abos drauf.
ZebRa 03.04.2011
0
{und weg ist sie} schreib mir was, dann lösche ich die nummer hier, ich benutze normalerweise kein icq, bin in web-icq online... dass man hier keine PMs senden kann, unglaublich :\
03.04.2011
pinchbeck 373 1 8

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH