菜鸟教程小白 发表于 2022-12-12 14:39:36

ios - ObjC,Facebook 页面 - 发布新闻提要有效,但发布照片无效


                                            <p><p>所以我试图通过 iPhone 应用在我的 Facebook 页面(我是管理员)上发布照片。我正在使用 FB Sessions 创建 session ,获得读取权限,获得 manage_pages 权限,然后,由于</p>,我成功获得了我的 Facebook Pages app-ids

<pre><code>[FBRequestConnection startWithGraphPath:@&#34;/me/accounts&#34; completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
   NSLog(@&#34;%@&#34;, );
}]; // have token, what now?
</code></pre>

<p>这仍然很好。然后,我尝试将照片发布到 app_id/photos 提要,但它不起作用 = 它正确上传照片,但显示我(如在我的个人资料中)上传照片而不是页面本身。可能是什么问题?</p>

<p>这是参数和调用的代码</p>

<pre><code>NSDictionary *params = [NSDictionary
dictionaryWithObjects: [NSArray arrayWithObjects:
    ,
    @&#34;This is my first photo post from xcode app&#34;, nil]
forKeys:[NSArray arrayWithObjects:
    @&#34;source&#34;,
    @&#34;message&#34;, nil]];

[FBRequestConnection startWithGraphPath:@&#34;MyPageID/photos&#34; parameters:params HTTPMethod:@&#34;POST&#34; completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
   NSLog(@&#34;%@&#34;, );
} ];
</code></pre>

<p>调用中的 <code></code> 日志很好(它返回 id = xx 和 "post_id"= yy,我认为这是正确的),调用本身也是如此 - 唯一问题是它显示我是作者,而不是页面本身。
MyPageID 是正确的,因为调用 </p>

<pre><code>NSDictionary *paramsFeed = forKeys:];

[FBRequestConnection startWithGraphPath:@&#34;390106241058188/feed&#34; parameters:paramsFeed HTTPMethod:@&#34;POST&#34; completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
   NSLog(@&#34;result: %@&#34;, );
}];
</code></pre>

<p>另外,调用 <code>me/photos</code> 并使用 dictionaryKey @"picture"将照片发布到那里是有效的,它可以完美地将照片发布到我自己的墙上。</p>

<p>有谁知道问题可能 Conceal 在哪里?</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>我找到了解决方案,虽然我觉得很奇怪我不必为/feed 页面更新执行此操作</p>

<p>非常感谢 <a href="https://stackoverflow.com/users/1653825/arpit-kumar-kulshrestha" rel="noreferrer noopener nofollow">Mr. Arpit Kumar Kulshrestha</a> ,谁在我之前的问题化身中指出了正确的方法(<a href="https://stackoverflow.com/questions/18869314/xcode-how-to-share-photo-from-iphone-app-to-facebook-managed-page-feed" rel="noreferrer noopener nofollow">Xcode - how to share photo from iPhone app to Facebook managed page feed</a>)</p>

<p>解决方案:
我之前尝试过设置一个新的 <code>FBSession</code> ,但它仍然有很多错误,所以我离开了那条路线并去了另一条路线。但是,这样做非常有意义 -
创建 <code>FBAccessTokenData</code>,其中包含页面的 token ,并将其他内容设置为与事件 session 相同 - 像这样</p>

<pre><code>FBAccessTokenData *tokenData = .accessTokenData.permissions expirationDate:.accessTokenData.expirationDate loginType:FBSessionLoginTypeFacebookApplication refreshDate:nil];
</code></pre>

<p>然后,需要创建一个新的 <code>FBSession</code>,重要的是,它需要将其 tokenCacheStrategy 设置为没有数据的东西,即 <code></code> 。我做了一个空白分配(<code>[ init]</code>),这给了我很多错误,但是当我使用这个时</p>

<pre><code>FBSession *sessionFb = [ initWithAppID:appID permissions: urlSchemeSuffix:nil tokenCacheStrategy:];
</code></pre>

<p>完美运行。当你有这个新 session 时,你想打开数据来来去去的路径,你可以这样:</p>

<pre><code>[sessionFb openFromAccessTokenData:tokenData completionHandler:^(FBSession *session, FBSessionState status, NSError *error)
{

}];
</code></pre>

<p>在它开始正常工作之前的最后一部分是将 activeSession 设置为这个新分配和打开的 session ,这样:</p>

<pre><code>;
</code></pre>

<p>在我完成所有这些更改后,照片页面共享开始神奇地工作。
但是,我仍然不确定照片共享之前怎么可能不起作用,但提要共享却起作用了..但这解决了我的问题。</p></p>
                                   
                                                <p style="font-size: 20px;">关于ios - ObjC,Facebook 页面 - 发布新闻提要有效,但发布照片无效,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/18880426/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/18880426/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: ios - ObjC,Facebook 页面 - 发布新闻提要有效,但发布照片无效