菜鸟教程小白 发表于 2022-12-12 21:38:15

ios - Facebook:从 iOS 应用分享给特定的人或列表


                                            <p><p>如果您在计算机上将新闻分享到 Facebook,您可以选择分享“特定人员或列表”。</p>

<p>我只需要从我的 iOS 应用程序中为一些 friend 分享照片。</p>

<p>是否可以使用 Graph API 仅从应用程序中分享“特定人员或列表”的新闻?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>使用社交框架在用户的墙上发帖</p>

<p>在 ACFacebookAudienceKey 中,选择其中一项</p>

<p><strong>1.ACFacebookAudienceEveryone</strong></p>

<p><strong>2.ACFacebookAudienceFriends</strong></p>

<p><strong>3.ACFacebookAudienceOnlyMe</strong></p>

<p><code>ACAccountStore *accountStore = [ init];</code></p>

<p><code>ACAccountType *accountType = ;
    NSLog(@"0");</code></p>

<pre><code>[accountStore requestAccessToAccountsWithType:accountType options:@{ACFacebookAppIdKey : @&#34;00000000000&#34;, ACFacebookPermissionsKey : @&#34;publish_stream&#34;, ACFacebookAudienceKey : ACFacebookAudienceFriends} completion:^(BOOL granted, NSError *error) {
    if(granted) {
      NSLog(@&#34;1&#34;);
      NSArray *accountsArray = ;
      NSLog(@&#34;2&#34;);
      if ( &gt; 0) {
            NSLog(@&#34;3&#34;);
            ACAccount *facebookAccount = ;
            NSLog(@&#34;4&#34;);
            SLRequest *facebookRequest = [SLRequest requestForServiceType:SLServiceTypeFacebook
                                                            requestMethod:SLRequestMethodPOST
                                                                      URL:
                                                               parameters:];
            NSLog(@&#34;5&#34;);

            ;
            NSLog(@&#34;6&#34;);

            [facebookRequest performRequestWithHandler:^(NSData* responseData, NSHTTPURLResponse* urlResponse, NSError* error) {
                NSLog(@&#34;%@&#34;, [ initWithData:responseData encoding:NSUTF8StringEncoding]);
            }];


      }
    }
}];
</code></pre>

<p>用于发布到 friend 的墙上。</p>

<pre><code>- (IBAction)InviteAction:(id)sender// Button action
{
    if (!FBSession.activeSession.isOpen) {
      // if the session is closed, then we open it here, and establish a handler for state changes
      [FBSession openActiveSessionWithReadPermissions:nil
                                           allowLoginUI:YES
                                    completionHandler:^(FBSession *session,
                                                          FBSessionState state,
                                                          NSError *error) {
                                          if (error) {
                                              UIAlertView *alertView = [ initWithTitle:@&#34;Invite friends process cancelled&#34;
                                                                                                message:nil
                                                                                                 delegate:nil
                                                                                        cancelButtonTitle:@&#34;OK&#34;
                                                                                        otherButtonTitles:nil];
                                              ;
                                          } else if (session.isOpen) {
                                              ;
                                          }
                                    }];
      return;
    }

    if (self.friendPickerController == nil) {
      // Create friend picker, and get data loaded into it.
      self.friendPickerController = [ init];
      self.friendPickerController.title = @&#34;Pick Friends&#34;;
      self.friendPickerController.delegate = self;
    }

    ;
    ;

    ;
}

- (void) performPublishAction:(void (^)(void)) action
{
    if ( == NSNotFound)
    {
      
                                              defaultAudience:FBSessionDefaultAudienceFriends
                                          completionHandler:^(FBSession *session, NSError *error) {
                                                if (!error) {
                                                    action();
                                                } else if (error.fberrorCategory != FBErrorCategoryUserCancelled){
                                                    UIAlertView *alertView = [ initWithTitle:@&#34;Permission denied&#34;
                                                                                                      message:@&#34;Unable to get permission to post&#34;
                                                                                                       delegate:nil
                                                                                              cancelButtonTitle:@&#34;OK&#34;
                                                                                              otherButtonTitles:nil];
                                                    ;
                                                }
                                          }];
    } else {
      action();
    }

}



- (void)loginViewFetchedUserInfo:(FBLoginView *)loginView
                            user:(id&lt;FBGraphUser&gt;)user
{
    self.loggedInUser = user;
}


- (void)facebookViewControllerDoneWasPressed:(id)sender
{
    NSMutableString *text = [ init];
    for (id&lt;FBGraphUser&gt; user in self.friendPickerController.selection)
    {

      if () {
            ;
      }
      ];
    }

    //For post to friend&#39;s wall
    NSDictionary *params = @{
                            @&#34;name&#34; : @&#34;Hello Please checkout this app&#34;,
                           @&#34;caption&#34; : @&#34; IOS APP&#34;,
                            @&#34;description&#34; : @&#34;&#34;,
                           @&#34;picture&#34; : @&#34;[email protected]&#34;,
                           @&#34;link&#34; : @&#34;http:www.google.com&#34;,
                           @&#34;to&#34;:text,

                           };


    // Invoke the dialog
    [FBWebDialogs presentFeedDialogModallyWithSession:nil
                                          parameters:params
                                             handler:
   ^(FBWebDialogResult result, NSURL *resultURL, NSError *error) {
         if (error) {
             NSLog(@&#34;Error publishing story.&#34;);
             UIAlertView *alertshow = [initWithTitle:@&#34;Failed&#34; message:@&#34;Failed to Post&#34; delegate:Nil cancelButtonTitle:@&#34;ok&#34; otherButtonTitles:nil];
             ;
         } else {
             if (result == FBWebDialogResultDialogNotCompleted)
             {
                NSLog(@&#34;User canceled story publishing.&#34;);
               UIAlertView *alertshow = [initWithTitle:@&#34;Failed&#34;   message:@&#34;Failed to post on your friend wall&#34; delegate:NilcancelButtonTitle:@&#34;ok&#34; otherButtonTitles:nil];
                ;
             } else {
               NSLog(@&#34;Story published.&#34;);
               UIAlertView *alertshow = [initWithTitle:@&#34;Success&#34; message:@&#34;Posted on Friend wall&#34; delegate:Nil cancelButtonTitle:@&#34;ok&#34; otherButtonTitles:nil];
               ;
            }
         }}];



    ;
}

- (void)facebookViewControllerCancelWasPressed:(id)sender {
    ;
}

- (void)fillTextBoxAndDismiss:(NSString *)text
{
    ;
}
</code></pre></p>
                                   
                                                <p style="font-size: 20px;">关于ios - Facebook:从 iOS 应用分享给特定的人或列表,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/23102275/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/23102275/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - Facebook:从 iOS 应用分享给特定的人或列表