我是iOS开发中的新手。我想将图像上传到Facebook页面。当图像被从相机中拾取时。为此我编写了一个代码如下,但是我得到了一个错误"必须为调用此端点"指定FBSession。请给我解决方案。
我的代码就像
一样-(IBAction)cameraButtonPressed:(id)sender
{
if (FBSession.activeSession.isOpen)
{
UIImage *uploadImage=[UIImage imageNamed:@"2.png"];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:accesstoken, @"CAACEdEose0cBAAFiJ51qowOOBfOcobm1E3v1ZBZCNYBSZAyspbQCXPUZCdZC620bRWYvChxGd96ZAOSMNyRZA9TYd9teQ9Q1m67wKx0n66YjTiYZBxczKIZB7t3tuLO5RYsNbZBfGweZCenMXRF7xOBE6DQ6450nmB0hRJzI8PrT18WZAfU878GhNryp5Vw4Up3jGZCwPWmuMxDZAoZAXVosyZBNKQ6i",
postingString, @"message",uploadImage,@"source",
nil];
FBRequest *requestToPost = [[FBRequest alloc] initWithSession:nil
graphPath:@"/me/feed"
parameters:params
HTTPMethod:@"POST"];
FBRequestConnection *requestToPostConnection = [[FBRequestConnection alloc] init];
[requestToPostConnection addRequest:requestToPost completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
NSLog(@"facebook result >> %@", result);
}];
[requestToPostConnection start];
}
else
{
NSArray *permissions = [[NSArray alloc] initWithObjects:
@"user_likes",
@"read_stream",
@"publish_actions",
nil];
FBSession *session = [[FBSession alloc] initWithPermissions:permissions];
[FBSession setActiveSession:session];
}
if([FBSession openActiveSessionWithAllowLoginUI:NO])
{
UIImage *uploadImage=[UIImage imageNamed:@"2.png"];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:accesstoken, @"CAACEdEose0cBAAFiJ51qowOOBfOcobm1E3v1ZBZCNYBSZAyspbQCXPUZCdZC620bRWYvChxGd96ZAOSMNyRZA9TYd9teQ9Q1m67wKx0n66YjTiYZBxczKIZB7t3tuLO5RYsNbZBfGweZCenMXRF7xOBE6DQ6450nmB0hRJzI8PrT18WZAfU878GhNryp5Vw4Up3jGZCwPWmuMxDZAoZAXVosyZBNKQ6i",
postingString, @"message",uploadImage,@"source",
nil];
FBRequest *requestToPost = [[FBRequest alloc] initWithSession:nil
graphPath:@"/me/feed"
parameters:params
HTTPMethod:@"POST"];
FBRequestConnection *requestToPostConnection = [[FBRequestConnection alloc] init];
[requestToPostConnection addRequest:requestToPost completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
NSLog(@"facebook result >> %@", result);
}];
[requestToPostConnection start];
}
else
{
NSLog(@"Nothing to DO BYE");
}
这里我的PList文件就像
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string></string>
<key>CFBundleURLSchemes</key>
<array>
<string>fb74549074886xxxx</string>
</array>
</dict>
</array>
<key>CFBundleVersion</key>
<string>1.0</string>
<key>FacebookAppID</key>
<string>7454907xxxxxx</string>
<key>FacebookDisplayName</key>
<string>CelebrateChristmas</string>
答案 0 :(得分:1)
-(IBAction)cameraButtonPressed:(id)sender
{
// here add your image did finish method
if ([[FBSession activeSession] isOpen]) {
/*
* if the current session has no publish permission we need to reauthorize
*/
if ([[[FBSession activeSession] permissions]indexOfObject:@"publish_stream"] == NSNotFound) {
[[FBSession activeSession] requestNewPublishPermissions:[NSArray arrayWithObjects: @"publish_stream",nil] defaultAudience:FBSessionDefaultAudienceFriends
completionHandler:^(FBSession *session,NSError *error){
[self postData];
}];
}else{
[self postData];
}
}else{
/*
* open a new session with publish permission
*/
[FBSession openActiveSessionWithPublishPermissions:[NSArray arrayWithObjects: @"publish_stream", nil]
defaultAudience:FBSessionDefaultAudienceFriends
allowLoginUI:NO
completionHandler:^(FBSession *session, FBSessionState status, NSError *error) {
if (!error && status == FBSessionStateOpen) {
[self postData];
}else{
NSLog(@"error");
}
}];
}
}
-(void)postData
{
UIImage *uploadImage=[UIImage imageNamed:@"2.png"];
NSDictionary *params = [NSDictionary dictionaryWithObjectsAndKeys:accesstoken, @"CAACEdEose0cBAAFiJ51qowOOBfOcobm1E3v1ZBZCNYBSZAyspbQCXPUZCdZC620bRWYvChxGd96ZAOSMNyRZA9TYd9teQ9Q1m67wKx0n66YjTiYZBxczKIZB7t3tuLO5RYsNbZBfGweZCenMXRF7xOBE6DQ6450nmB0hRJzI8PrT18WZAfU878GhNryp5Vw4Up3jGZCwPWmuMxDZAoZAXVosyZBNKQ6i",
postingString, @"message",uploadImage,@"source",
nil];
FBRequest *requestToPost = [[FBRequest alloc] initWithSession:nil
graphPath:@"/me/feed"
parameters:params
HTTPMethod:@"POST"];
FBRequestConnection *requestToPostConnection = [[FBRequestConnection alloc] init];
[requestToPostConnection addRequest:requestToPost completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
NSLog(@"facebook result >> %@", result);
}];
[requestToPostConnection start];
}