Udostępnianie z IOS 6.0 natywna integracja z Facebook: "opublikowane za pomocą mojej nazwy aplikacji"?

Właśnie zintegrowałem facebook z moją aplikacją za pośrednictwem ios 6, ale mam problem z publikowaniem na mojej ścianie. To po prostu mówi "post przez aplikację ios" . Chcę to powiedzieć "wysłany przez nazwę aplikacji" . Facebook stworzył Facebook tożsamość aplikacji i mam przypisany numer aplikacji, ale nie jestem pewien, jak to zintegrować z integracją z Facebookiem.

Poniżej znajduje się mój kod. Gdyby ktoś mógł pomóc, byłbym wdzięczny. Dzięki!

{
NSString *message;
message= [[NSString alloc] initWithFormat:@"I've earned %@ points", [self retrieveScore]];

if([SLComposeViewController isAvailableForServiceType:SLServiceTypeFacebook]) {

    SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook];
    [controller setInitialText:message];
    [controller addURL:[NSURL URLWithString:@"http://mysite"]];
    [self presentViewController:controller animated:YES completion:Nil];
    [message release];

    SLComposeViewControllerCompletionHandler myBlock = ^(SLComposeViewControllerResult result){
        NSString *output= nil;
        switch (result) {
            case SLComposeViewControllerResultCancelled:
                output= @"Action Cancelled";
                NSLog (@"cancelled");
                break;
            case SLComposeViewControllerResultDone:
                output= @"Post Succesfull";
                NSLog (@"success");
                break;
            default:
                break;
        }
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Facebook" message:output delegate:nil cancelButtonTitle:@"Ok" otherButtonTitles:nil];
        [alert show];
        [alert release];
        [controller dismissViewControllerAnimated:YES completion:Nil];
    };
    controller.completionHandler =myBlock;
      }
Author: Rob, 2012-09-23

3 answers

UPDATE-można to zrobić

Więc Digg dla iOS Aplikacja jest w stanie udostępniać Facebook bez korzystania z konta framework, aby uzyskać uprawnienia użytkowników... Facebook Facebook App Store.używają UIActivityViewController i mają post wyświetlany jako "przez Digg", skontaktowałem się z kimś z Digg i powiedzieli mi, że jest to proces ręczny, musisz mieć swoją aplikację na iOS opublikowaną w Apple App Store, a także mieć aplikację na Facebooku zaakceptowaną i opublikowaną w Facebook App Store. Wtedy Facebook może ręcznie proces łączący te dwa w ten sposób.

Facebook facebook to jedna z najbardziej popularnych aplikacji na Facebooku, w której możesz udostępniać swoje aplikacje bez konieczności korzystania z Facebooka i aplikacji na Facebooku.... [17]}oczywistym minusem tego jest to, że UIActivityViewController oznaczało, że możesz udostępniać je z poziomu swojej aplikacji bez integracji z Facebookiem, bez potrzeby korzystania z aplikacji na Facebooku... Facebook Facebook zatwierdzi je we własnym app store, gdy wszystko zostanie uruchomione, musisz skontaktować się z relacjami z deweloperami, aby połączyć to wszystko.

Zauważ, że reszta mojej odpowiedzi (moja poprzednia odpowiedź) jest poprawna, rozwiązaniem jest ręczny proces, który Facebook może zrobić dla Ciebie, Twój kod iOS nie powinien być naruszony.


Poprzednia odpowiedź i obejście

Natywna integracja z Facebook, którą chcesz, jest w rzeczywistości kontrolerem widoku composer. Uzyskuje się to za pomocą klasy SLComposeViewController z typem usługi SLServiceTypeFacebook.

Ta klasa zapewnia tylko jednokierunkową komunikację i jak zauważysz, to Ty potwierdzasz wszelkie słupki ścienne, naciskając przycisk Post. Ten kontroler widoku jest własnością systemu iOS, nie Twoja aplikacja. Wchodząc w interakcję z tym kontrolerem widoku compose, faktycznie omijasz swoją aplikację.

Użytkownicy lubią to robić, ponieważ daje im to bezpieczeństwo.

Chyba że aplikacja działa tylko przez głębszą, dwukierunkową integrację Facebook należy użyć SLComposeViewController (głębsza integracja oznacza, że aplikacja potrzebuje listy znajomych lub istniejących postów ściennych, albumów itp...).

Aby post pochodzący z Twojej aplikacji pojawił się na Facebook ' u z "via xxxx", a nie" via iOS", musisz wchodzić w interakcje z Facebook ' em za pośrednictwem klasy SLRequest. Aby to zrobić, musisz również współdziałać z Account.framework oprócz Social.framework.

Facebook facebook Facebook SDK wcześniej używane (i nadal może używać) w zakresie konfiguracji, można uzyskać odniesienie do sklepu kont urządzenia, można poprosić o konta na Facebooku i wysłać identyfikator aplikacji Facebook i tablicę uprawnień.***********.***********.***********.***********.***********. * * * * * * * * * * *

Jeśli ci się to uda, możesz Facebook Graph API poprzez klasę SLRequest. Umieszczając na ścianie w tym dworku będziesz miał żądaną "via xxx".

Aby go użyć, zapoznaj się z dokumentacją Dla SLRequest.

Pamiętaj, że jesteś odpowiedzialny za tworzenie własnego widoku kompozycji w tym przypadku.

Możesz oczywiście zainspirować się natywnym interfejsem użytkownika, Sprawdź również aplikację iPhoto na iOS, spróbuj udostępnić ją na Facebook ' u za pomocą tej aplikacji, zauważysz, że prosi o pozwolenie na interakcję z konto Facebook Facebook (coś, co nie występuje podczas korzystania z SLComposeViewController), następnie prezentuje coś bardzo zbliżonego do {[2] } do komponowania postów na Facebooku.

Ale jeśli przyjrzysz się bliżej, zauważysz, że to nie to samo. Dotyczy to również Twittera i ich rodzimej aplikacji vs rodzimej integracji. Mają swój własny widok komponowania, naprawdę warto zauważyć, że używają natywnej integracji z iOS (frameworki Apple). Wiemy to, ponieważ przechodząc do Ustawienia > Prywatność > Twitter możesz zobaczyć Twitter aplikacja to autoryzowana aplikacja korzystająca z konta Twittera na urządzeniu.

To samo tyczy się Facebook.

Jeśli nie otrzymasz pozwolenia, nie masz możliwości publikowania jako swojej aplikacji-aka "via myApp".

Przepraszam, że cię zawiodłem, Szukałem również sposobu, aby zintegrować ACAccount z SLComposeViewController, ale nie mogłem znaleźć drogi. Szkoda... ponieważ rodzimy interfejs użytkownika jest słodki.

 70
Author: Daniel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-23 14:27:29

Facebook Facebook SDK 3.1 został stworzony na bazie frameworku Facebook SDK 3.1, który został stworzony na bazie frameworku Facebook SDK 3.1. Facebook Compose View

Oryginał jest tutaj: Facebook compose view . Właśnie naprawiłem kilka drobnych ostrzeżeń i zaktualizowałem nowy FB SDK 3.1.

Użycie:

DEFacebookComposeViewControllerCompletionHandler __block completionHandler = ^(DEFacebookComposeViewControllerResult result) {
    [self dismissViewControllerAnimated:YES completion:nil];
    switch (result) {
        case DEFacebookComposeViewControllerResultCancelled:
            NSLog(@"Facebook Result: Cancelled");
            break;
        case DEFacebookComposeViewControllerResultDone:
            NSLog(@"Facebook Result: Sent");
            break;
    }
};
DEFacebookComposeViewController * compose = [[DEFacebookComposeViewController alloc] init];
[compose setInitialText:self.shareText];
[compose addImage:self.shareImage];
[compose addURL:self.shareURL];
[compose setCompletionHandler:completionHandler];
[self presentViewController:compose animated:YES completion:^{}];

Konfiguracja:

  1. Otwórz projekt i wykonaj czysty build.
  2. przejdź do folderu $PROJECT_FOLDER\build\Debug-iphonesimulator i przeciągnij oba FBComposeView.framework & FBComposeView.bundle do twojego projektu.

Uwaga: Pamiętaj, aby używać tych w Debug-iphonesimulator. To jest Fat binary. Tutaj wpisz opis obrazka

 13
Author: docchang,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-06-19 10:01:33

Rozwiązaliśmy podobny problem z integracją z IOS 5 Twitter, a wynik jest następujący:

Podczas publikowania na Twitterze z kompilacją deweloperów lub za pośrednictwem symulatora prawie zawsze pojawi się na Twitterze jako "via iOS". Po zatwierdzeniu aplikacji i wysłaniu z AppStore build powinna ona pojawić się jako wysłana przez "YourAppName on iOS" z linkiem do strony apps appstore.

Original source (sharekit issue discussion)

Przypuszczam, że Apple robi to samo z Facebook i inne serwisy społecznościowe.

EDIT: niestety to naprawdę działało tylko z Twitterem.ramy. Myślę, że najlepszym wyjaśnieniem i odpowiedzią jest to Daniele powyżej. Może nadszedł czas, aby to sprawdzić, aby Apple wiedziało, czego chcemy.

Przykłady jak używać SLRequest z Facebook są w to więc pytanie

EDIT2: wpisano identyfikator błędu radaru # 12980058. Mam nadzieję, że posłuchają...

 3
Author: Vilém Kurz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-05-23 11:58:58