首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >iOS 6带有图形api的社交框架Facebook未被发布

iOS 6带有图形api的社交框架Facebook未被发布
EN

Stack Overflow用户
提问于 2013-07-30 18:09:32
回答 2查看 1.9K关注 0票数 0

我已经在Facebook开发者控制台中为我的iOS应用程序创建了一个Facebook应用程序,但是当我使用该应用程序id时,即使我得到了成功的响应,它也不会被发布。请在下面找到我的代码。(即使我得到了那个帖子的id )。

但关键是,当我对我现有的Facebook应用程序id(它目前用于我的实时应用程序)执行相同的代码时,这个程序会被发布并运行良好,所以我的假设是,在开发人员控制台中,我必须在Facebook应用程序配置中做一些事情,但我找不到。有人能给我个线索吗?

提前谢谢。

注意:我使用iOS 6社交框架

获取用户方法

代码语言:javascript
复制
    - (void)getUserAndShare {
    NSLog(@"Getting User");

    if(!_accountStore)
        _accountStore = [[ACAccountStore alloc] init];

    ACAccountType *facebookTypeAccount = [_accountStore accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
    [_accountStore requestAccessToAccountsWithType:facebookTypeAccount
                                           options:@{ACFacebookAppIdKey: @"xxxxxxxxxxxxxx", ACFacebookPermissionsKey: @[@"email"]}
                                        completion:^(BOOL granted, NSError *error) {
                                            if(granted){
                                                NSArray *accounts = [_accountStore accountsWithAccountType:facebookTypeAccount];
                                                _facebookAccount = [accounts lastObject];
                                                NSLog(@"Success account");

                                                [_accountStore renewCredentialsForAccount:_facebookAccount completion:^(ACAccountCredentialRenewResult renewResult, NSError *error) {
                                                    if (error){

                                                    }

                                                    [self postPhoto:nil];
                                                }];


                                            }
                                        }];

}

份额法

代码语言:javascript
复制
-(IBAction)postPhoto{

    if(!_accountStore)
        _accountStore = [[ACAccountStore alloc] init];

    NSDictionary *parameters = @{@"message": @"this is a resource picture 2", ACFacebookAppIdKey: @"xxxxxxxxxxxxxx"};

    SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
                                                    requestMethod:SLRequestMethodPOST
                                                              URL:[NSURL URLWithString:@"https://graph.facebook.com/me/photos"]
                                                       parameters:parameters];

    NSData *data = UIImagePNGRepresentation([UIImage imageNamed:@"sec.jpg"]);
    [facebookRequest addMultipartData: data
                             withName:@"source"
                                 type:@"multipart/form-data"
                             filename:@"msg.jpg"];

    facebookRequest.account = _facebookAccount;

    [facebookRequest performRequestWithHandler:^(NSData *responseData, NSHTTPURLResponse *urlResponse, NSError *error)
     {
         if (error) {
         }
         else
         {
             NSLog(@"Post successful");
             NSString *dataString = [[NSString alloc] initWithData:responseData encoding:NSStringEncodingConversionAllowLossy];
             NSLog(@"Response Data: %@", dataString);
         }
     }];
}

编辑:在调用requestAccessToAccountsWithType时,是否需要请求使用图形API的特殊权限?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-07-31 05:09:55

最后,我让它正常工作,我的假设是正确的:)当我请求访问时,我必须添加新的权限。所以,正如我说的,它在我以前的Facebook应用程序ID中有效,那是因为我已经批准了该应用程序的许可。不管怎么说,对于那些想知道什么是解决办法的人,可以在下面找到,

代码语言:javascript
复制
 //Specify App ID and permissions
    NSDictionary *options = @{
                              ACFacebookAppIdKey: @"xxxxxxxxxxxxxxx",
                              ACFacebookPermissionsKey: @[@"publish_stream", @"publish_actions"],
                              ACFacebookAudienceKey: ACFacebookAudienceFriends
                              };

请求两个新权限:publish_streampublish_actions

票数 1
EN

Stack Overflow用户

发布于 2013-07-30 18:37:56

我认为问题在于你的MIME类型,问题在这一行:

代码语言:javascript
复制
[facebookRequest addMultipartData: data
                             withName:@"source"
                                 type:@"multipart/form-data"
                             filename:@"msg.jpg"];

将其改为:

代码语言:javascript
复制
[facebookRequest addMultipartData:data
                       withName:@"media"
                           type:@"image/jpeg"
                       filename:@"msg.jpg"];
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17954302

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档