Soziale Profile aus Apple Adressbuch löschen

Ich wurde von Phil angeschrieben, der verzweifelt versucht hat, das wohl erst seit kurzem im Apple Adressbuch eingeführten social profile via AppleScript zu löschen. Das Problem dabei scheint zu sein, dass ein normales delete social profile 1 of somePerson nicht funktioniert, da dieses Element kein Bestandteil der contact info ist. So zumindest meine Vermutung, wenn ich mir das AppleScript-Funktionsverzeichnis anschaue. Ich finde den Zustand ehrlich gesagt recht passend; wenn es schon so schwierig ist, sein soziales Profil bei FaceBook, Google+, Twitter & Co. wirklich zu löschen, dann sollte man es mindestens genau so schwer haben, wenn man dies via Skript auf einem Mac versucht.
Aber ich würde darüber nicht schreiben, wenn ich dafür keine Lösung parat hätte. VORSICHT, der folgende Code LÖSCHT alle sozialen Profile, der im Adressbuch ausgewählten Person!!!

--© hubionmac.com 21.03.2012
-- example code that REMOVES ALL SOCIAL PROFILES
-- from every selected person in your Address Book
-- de-facebook, de-twitter,… you contacts ;-)

set mySelectedPersons to selection

repeat with aSelectedPerson in mySelectedPersons
  set social_ids to id of (every social profile of aSelectedPerson)
  repeat with social_id in social_ids
    my delete_social_profile(aSelectedPerson, social_id)
    save
  end repeat
end repeat

on delete_social_profile(thePerson, theID)
  --handler for removing social profiles from Address Book
  --only way since social profile is not contained by contact info or something else and so delete social profile xy does not work
  -- input a single reference to a person in the address book and
  -- a the uniq ID of a social profile as text
  tell application "Address Book"
    set social_index to 0
    repeat with i from 1 to (count of every social profile of thePerson)
      if (id of social profile i of thePerson) as text = theID as text then
        set social_index to i
        exit repeat
      end if
    end repeat
    if social_index = 0 then error "error on delete_social_profile, given ID was not found in this person"
    --you cannot delete/kill a social profile, but when you remove/take away
    --all stored information (username and URL) from it, it commits suicide
    --and is removed from the address book, philosophic programming, isn't it?
    set user name of social profile social_index of thePerson to ""
    set url of social profile social_index of thePerson to ""
  end tell
end delete_social_profile
									

3 thoughts on “Soziale Profile aus Apple Adressbuch löschen

  1. Steffen says:

    Hallo,

    gerade habe ich mich über das von dir beschriebe Script gefreut, doch leider komme ich es nicht zu laufen. An der Stelle ” set social_ids to id of (every social profile of aSelectedPerson)” bekomme ich einen Fehler, dass er einen Klassennamen erwartet aber einen Identifier gefunden hat. Auch das ändern in de-facebook oder Facebook hat nicht funktioniert.

    Kannst du mir bitte weiterhelfen.

    Vielen Dankl

    • Steffen says:

      Okay, das Kommentar war etwas zu voreilig.

      Ich habe online diesen Code gefunden, der bei mir wunderbar funktioniert.


      set theNames to {"Facebook"}

      tell application "Contacts"
      repeat with thisPerson in people
      tell thisPerson
      set theProfiles to social profiles
      repeat with thisProfile in theProfiles
      if the service name of thisProfile is in theNames then
      set user name of thisProfile to ""
      set user identifier of thisProfile to ""
      set url of thisProfile to ""
      end if
      end repeat
      end tell
      end repeat
      save
      end tell

      • Hubi says:

        Hallo Steffen,

        Danke Dir für den Code. Ich lasse das jetzt mal so stehen. AppleScript ist aktuell nicht mehr so mein Steckenpferd, da freut es mich wenn die gefixten Version älterer Codes hier gepostet werden :-)

Leave a Reply