菜鸟教程小白 发表于 2022-12-12 13:36:29

iphone - 以管理员身份将图片发布到 Facebook 页面


                                            <p><p>我在将照片从 ios 应用程序发布到 Facebook 页面时遇到问题<strong>作为页面的管理员</strong>。我唯一可以作为管理员发布的是状态消息。 </p>

<p>这就是我所做的。</p>

<pre><code>// get access token first
[FBRequestConnection startWithGraphPath:@&#34;/__facebook_page_id__?fields=access_token&#34; completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

    // make sure its not nil
    if ( != nil) {
      NSString *accessToken = ;

      NSLog(@&#34;Access token: %@&#34;, accessToken);

      NSMutableDictionary* params = [ init];
      ;
      ;

      [FBRequestConnection startWithGraphPath:@&#34;/__facebook_page_id__/feed&#34; parameters:params HTTPMethod:@&#34;POST&#34; completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

            NSLog(@&#34;Result: %@&#34;, result);
            NSLog(@&#34;Error: %@&#34;, error);

      }];
    }

}];
</code></pre>

<p><strong>以上代码以管理员身份成功发布到facebook页面</strong>。由于我需要发布照片,所以我需要将 grap 路径更改为/facebook_page_id/photos。</p>

<pre><code>NSMutableDictionary* params = [ init];
;
;
;

parameters:params HTTPMethod:@&#34;POST&#34; completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {

    NSLog(@&#34;Result: %@&#34;, result);
    NSLog(@&#34;Error: %@&#34;, error);

}];
</code></pre>

<p>以上代码已成功发布,但未以管理员身份发布。尽管我正在使用页面的访问 token 。</p>

<p>我以为 fb_page_id/photos 路径坏了,所以我尝试使用 fb_page_id/feed 并发送其他字段,例如链接、图片等。但是,它仍然以用户而不是页面管理员的身份发布。</p>

<p>如果我做错了,请告诉我。</p>

<p>一些信息:
- 部署目标:5.1及以上
- Facebook SDK 版本:3.7</p>

<p>提前谢谢你。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我终于找到了答案。以防万一有人遇到同样的问题,这就是我正在做的事情。</p>

<ol>
<li><p>您需要通过访问 <code>/page_id?fields=access_token</code></p> 获得主页的 access_token

<p> completionHandler:^(FBRequestConnection *connection, id result, NSError *error) {</p>

<pre><code>// if the access_token is not there, the user might not able to post. check the permission
if ( != nil) {
    NSString *accessToken = ;
}
</code></pre>

<p>}];</p></li>
<li><p>获取Page的access_token后,需要使用REST API发布图片。这里我用的是AFNetworking,手动上传图片。</p>

<p>if ( != nil) {
    NSString *accessToken = ;</p>

<pre><code>NSURL *url = ;
AFHTTPClient *client = ;

// parameter
NSDictionary *params = @{@&#34;access_token&#34;: accessToken, @&#34;message&#34;: message};

// image data
NSData *imageData = UIImageJPEGRepresentation(self.imagePreview.image, 1);

// create Request and upload the image
NSMutableURLRequest *request = ] parameters:params constructingBodyWithBlock:^(id&lt;AFMultipartFormData&gt; formData) {
    ;
}];

// publish!
AFJSONRequestOperation *json = [AFJSONRequestOperation JSONRequestOperationWithRequest:request1 success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {

    // IMAGE PUBLISHED!!!

} failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {
    // SOMETHING WRONG HAPPEN
}];
;
</code></pre>

<p>}</p></li>
</ol>

<p>不要问我为什么要使用 REST API,我用他们的 SDK 尝试了一切,但总是失败。</p>

<p>我希望有人会发现它对这段代码有用。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 以管理员身份将图片发布到 Facebook 页面,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18224038/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18224038/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 以管理员身份将图片发布到 Facebook 页面