1

写真をオープン グラフ オブジェクトとしてアップロードし、URL が返されたら、それをオープン グラフ アクションに結び付けます。

これまでのところすべてうまくいっていますが、「TEST TEST TEST TEST!」というカスタム ユーザー メッセージを取得できません。現れる。 私はあらゆる角度からこの問題に取り組んできましたが、それを突き止めることができないようです。何か案は?

ここに画像の説明を入力

    - (void)postPhotoThenOpenGraphAction {

        FBRequestConnection *connection = [[FBRequestConnection alloc] init];

        // First request uploads the photo.
        FBRequest *request1 = [FBRequest requestForUploadPhoto:[UIImage imageWithData:[NSData dataWithContentsOfFile:picture.pathSmall]]];

        [connection addRequest:request1 completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

            if (!error) {
            } else {
                [self showFacebookFailedError];
            }
        }
                batchEntryName:@"photopost"];


        // Second request retrieves photo information for just-created
        // photo so we can grab its source.
        FBRequest *request2 = [FBRequest requestForGraphPath:@"{result=photopost:$.id}"];

        [connection addRequest:request2 completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

             if (!error && result) {

                 NSString *source = [result objectForKey:@"source"];
                 [self postOpenGraphActionWithPhotoURL:source];

             } else {
                 [self showFacebookFailedError];
             }
         }
         ];

        [connection start];


       }

    - (void)postOpenGraphActionWithPhotoURL:(NSString*)photoURL {

        id<PTOGPicture> photoGraphObject = [self pictureObjectForPicture:self.picture];
        id<PTOGSharePicture> action = (id<PTOGSharePicture>)[FBGraphObject graphObject];

        action.photo = photoGraphObject;

        if (self.selectedPlace) {
            action.place = self.selectedPlace;
        }
        if (self.selectedFriends.count > 0) {
            action.tags = self.selectedFriends;
        }

        action.message = @"TEST TEST TEST TEST!";

        if (photoURL) {

            NSMutableDictionary *image = [[NSMutableDictionary alloc] init];

            [image setObject:photoURL forKey:@"url"];

            NSMutableArray *images = [[NSMutableArray alloc] init];
            [images addObject:image];

            action.image = images;
        }

        // Create the request and post the action to the.
        [FBRequestConnection startForPostWithGraphPath:@"me/myappapp:share"
                                           graphObject:action
                                     completionHandler:^(FBRequestConnection *connection,
                                                         id result,
                                                         NSError *error) {
           //... code taken out for brevity

        }];
       }
4

1 に答える 1

0

私はあなたが望むもののために働くより単純なバージョンを持っています:

まず、必要に応じてアクションオブジェクトを作成します。

- (void)shareOnFacebook {
    NSMutableDictionary<FBGraphObject> *action = [FBGraphObject graphObject];
    action[@"<OPEN_GRAPH_OBJ>"] = obj;
    action[@"image[0][url]"] = url;
    action[@"image[0][user_generated]"] = @"true";
    action[@"message"] = @"some message here";

    [FBRequestConnection startForPostWithGraphPath:@"me/<app_namespace>:<action>" graphObject:action completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {
    }];
}

ただし、これが機能するための要件は、アクション設定ページで次の2つの権限を設定する必要があることです。

ここに画像の説明を入力してください

お役に立てば幸いです。

于 2013-03-19T14:03:53.103 に答える