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;
}
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.
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
.
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.
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.
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:
- Otwórz projekt i wykonaj czysty build.
- przejdź do folderu
$PROJECT_FOLDER\build\Debug-iphonesimulator
i przeciągnij obaFBComposeView.framework
&FBComposeView.bundle
do twojego projektu.
Uwaga: Pamiętaj, aby używać tych w Debug-iphonesimulator
. To jest Fat binary.
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ą...
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