开发者

Facebook iOS SDK not returning to my app

开发者 https://www.devze.com 2023-04-11 05:04 出处:网络
I\'m trying to implement the new oAuth2 facebook SDK into my app but can\'t for the life of me understand how I\'m supposed to get back to my app once logged in/authenticated.

I'm trying to implement the new oAuth2 facebook SDK into my app but can't for the life of me understand how I'm supposed to get back to my app once logged in/authenticated.

My goal is to post a message on the users wall.

I am currently starting the login procedure with this:

-(void)tryFBlogin {

NSString *appId = @"113142482******";

NSArray *permissions =  [[NSArray arrayWithObjects:@"publish_stream",nil] retain];

TheApp开发者_如何学运维Delegate *theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication]delegate];

//Asking for permission
theAppDelegate = (TheAppDelegate *)[[UIApplication sharedApplication] delegate];
theAppDelegate.facebook = [[Facebook alloc] initWithAppId:appId andDelegate:self];
Facebook *fb = [theAppDelegate facebook];
[fb  authorize:permissions];

}

which is opening a safari browser. If I'm already logged in and have the app authorized a message will tell me so and I have an OKay button to press.

When I press the OKay button I get an alert saying safari cannot open the page. I confirm the alert and am left looking at a blank safari window.

If I'm logged out of facebook I am presented with the login screen which I fill in and am then presented with the same as above.

I understand that I haven't implemented the publish command anywhere yet as I don't know where/when this should be implemented.

I do have this delegate method in place but this seems to never get called

- (void)fbDidLogin {

    NSLog(@"fbDidLogin");
}

This is the code I have waiting to place somewhere:

NSMutableDictionary* params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
kAppId, @"113142482******",
facebookUrl, @"link",
@"http://www.domain.com", @"picture",
@"My Message", @"name",
@"Caption text!", @"caption",
@"Message text.",  @"message",
nil];

[facebook dialog:@"feed" andParams:params andDelegate:self];

I also have the following methods in my apps main AppDelegate:

-(BOOL) application:(UIApplication *)application handleOpenURL:(NSURL *)url{
    [facebook handleOpenURL:url]; 
return YES; 
}

Any help/suggestions would be very much appreciated.

Thanks

Mark


I had this same problem. Just to clarify some of the other answers, here's how I fixed the issue for my iPhone app in Xcode 4.2:

.plist file
    "URL types"
    "Item 0"
        "URL Schemes"
        "Item 0"
            "fb21593853845xxxx"


Arg, you better open .plist as code source, you should see :

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>fb38*******</string>
        </array>
    </dict>
</array>


You must write your AppID to your .plist

0

精彩评论

暂无评论...
验证码 换一张
取 消