2015-10-17 12 views
13

Was ich versuche zu tun und es funktioniert nicht, ist das Folgende: post ein Bild meiner Wahl und auch eine URL zu Facebook mit dem eingebauten Facebook Sharer, das Problem ist, dass es funktioniert nicht, um beide hochzuladen, es ist entweder Bild + Text und funktioniert nett oder URL + Text und funktioniert gut, aber wenn ich sie Text + Bild + URL kombiniere, bekommt es das Bild von der URL und nicht mein hochgeladenes Bild. Irgendwelche Vorschläge? Ich mache dies auf iOS9SLComposeViewController Post sowohl Bild und URL ios9

+0

gibt es nicht ios9 Problem. FB neuste API (4.7.x) Problem –

Antwort

2

So scheint es im Moment gibt es keine Lösung für diese und wir sollten eine Abhilfe dafür finden, vielleicht alles zuerst ein Bild auf eine URL hochladen und dann fb sdk verwenden, um auf ein Bild von dieser URL + den Link zu zeigen als Offline-Bild scheint das leider nicht zu funktionieren.

-1

Ich hatte Facebook-Freigabe funktioniert gut in meiner iOS-App, wenn fb nicht installieren. und ich habe fb installiert, um die neueste API (4.7.x) zu verwenden, und jetzt funktioniert das Teilen überhaupt nicht. Ich überprüfe, dass ich die Berechtigung publish_actions habe (was ich mache, bevor diese Methode aufgerufen wird, ich habe 'expicitly shared' in offenen Diagrammeinstellungen, Aktionstypen, Fähigkeiten überprüft. Ich validiere den Inhalt (ich erhalte keinen Fehler) und habe ein Delegierter, keine seiner Methoden aufgerufen.

-(void)shareWithFacebook:(NSString *)message 
{ 
    if ([[FBSDKAccessToken currentAccessToken] hasGranted:@"publish_actions"]) 
    { 
     NIDINFO(@"Facebook sharing has publish_actions permission"); 
    } 
    else 
    { 
     FBSDKLoginManager *loginManager = [[FBSDKLoginManager alloc] init]; 
     [loginManager logInWithPublishPermissions:@[@"publish_actions"] 
      handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) 
      { 
       NIDERROR(@"Facebook sharing getting publish_actions permission failed: %@", error); 
      } 
     ]; 
    } 

    NSMutableDictionary *properties = [NSMutableDictionary dictionaryWithDictionary: @{ 
                        @"og:type": @"article", 
                        @"og:title": @"Bloc", 
                        @"og:description": message, 
                        @"og:url": @"http://getonbloc.com/download" 
                         }]; 




    FBSDKShareOpenGraphObject *object = [FBSDKShareOpenGraphObject objectWithProperties:properties]; 

     // Create the action 
    FBSDKShareOpenGraphAction *action = [FBSDKShareOpenGraphAction actionWithType:@"mynamespace:Share" object:object key:@"article"]; 
    [action setString:@"true" forKey:@"fb:explicitly_shared"]; 

     // Create the content 
    FBSDKShareOpenGraphContent *content = [[FBSDKShareOpenGraphContent alloc] init]; 
    content.action = action; 
    content.previewPropertyName = @"article"; 

      // Share the content 
    FBSDKShareAPI *shareAPI = [[FBSDKShareAPI alloc] init]; 
    shareAPI.shareContent = content; 
    shareAPI.delegate = self; 

    NSError *error; 
    if([shareAPI validateWithError:&error] == NO) 
    { 
     NIDERROR(@"Facebook sharing content failed: %@", error); 
    } 

    [shareAPI share]; 
} 

#pragma mark - FBSDKSharingDelegate 

- (void) sharer:(id<FBSDKSharing>)sharer didCompleteWithResults:(NSDictionary *)results 
{ 
    NIDINFO(@"Facebook sharing completed: %@", results); 
} 

- (void) sharer:(id<FBSDKSharing>)sharer didFailWithError:(NSError *)error 
{ 
    NIDERROR(@"Facebook sharing failed: %@", error); 
} 

- (void) sharerDidCancel:(id<FBSDKSharing>)sharer 
{ 
    NIDINFO(@"Facebook sharing cancelled."); 
} 
6

Das Problem ist, dass Facebook einige Richtlinien geändert hat und durch diese kann man nicht einen Text oder ein Bild vorhanden als Standard haben. aus diesem Grund sind Sie nicht zu sehen, Der Text und das Foto: Hier sind 2 Szenarien, eine mit Facebook-App installiert und eine andere ohne Facebook-App installiert Die folgende ist, wenn die Facebook-App bereits auf dem Gerät installiert ist

Und dieses ist, wenn die Facebook-App auf dem Gerät installiert ist

enter image description here

Und dies ist mein Code:

SLComposeViewController *controller = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 

[controller addURL:[NSURL URLWithString:@"https://www.google.com"]]; 
[controller addImage:[UIImage imageNamed:@"icon_circle"]]; 
[controller setInitialText:@"Bhavuk you're great!"]; 

[self presentViewController:controller animated:YES completion:nil]; 

Wenn Sie also alles teilen möchten, eine bessere Nutzung FB SDK .

1

Leider bleibt das Problem auch auf iOS 10. Eine einfache Abhilfe ist einfach die URL fallen, zum Beispiel:

SLComposeViewController *fbSheet = [SLComposeViewController composeViewControllerForServiceType:SLServiceTypeFacebook]; 
[fbSheet setInitialText:@"I need your vote"]; 
[fbSheet addImage:tableViewScreenshot]; 
+0

Sie können nicht einmal initialText hinzufügen. Es wird nicht angezeigt. – Ans

0

Es ist nicht eine direkte Antwort auf die OP, aber im Falle dessen, was Sie nur Pflege ist Text und Bild zeigt, während etwas zu teilen, ist hier eine mögliche Lösung:

Wenn das Bild und der Text, den Sie in Ihrem SlComposeView zeigen wollen die gleiche wie die Informationen, die innerhalb der Website vorhanden sind, dass Sie gehen Teilen; Sie müssen auf der iOS-Seite überhaupt nichts Spezielles tun.

Wenn Sie sind derjenige, der auch die Web-Seite erstellt, die Sie teilen URL, sollten Sie die richtige Open Graph META-Tags auf der Seite, SLComposeView vom Typ Facebook Bild und Text wird zeigen müssen, die an gesetzt wurden die Webseite in Ihrer App automatisch.

Für einige Informationen über Facebook Open Graph Markup; siehe https://developers.facebook.com/docs/sharing/webmasters/#markup

Verwandte Themen