在Facebook上发布图片和在好友的Facebook墙上发布图片

4

我对API的问题感到非常疲惫,比如Facebook Graph API、天气API等。

我在我的项目中使用了这两个API。用Graph API来处理Facebook数据,用Google天气API来获取天气数据,但是现在在项目完成之际,这两个API都无法正常工作。Google天气API已于11月份停止支持,

而我一直在使用的Facebook功能(在墙上发布图片和在朋友墙上发布图片)昨天还能用,但现在不行了。

问题在于当我登录时,会收到消息“您请求的页面未找到”,并且下面有一个链接可以返回到上一页。

enter image description here

当我点击“返回上一页”链接时,它会显示以下消息:

An error has occurred with AppName, please try again
API error code : 100
API error Description : Invalid Parameter
Error_message : cancel_URL URL is not properly formatted

我想了解Facebook API的解决方案。这个问题是每个开发者都会遇到吗?如果API被修改或更改,我们可以做什么呢?


请参考以下链接:http://stackoverflow.com/questions/11240006/share-an-image-on-fb-wall/12006227#12006227http://stackoverflow.com/questions/12138367/post-on-friends-wall-using-facebook-sdk-3-0-for-ios/12138738#12138738 - iAndroid
3个回答

1
你上次更新 Facebook API 是什么时候?大约两周前,我不得不删除整个 API,重新下载,并更改我的应用程序使用的所有发布代码。它完全停止工作,直到应用程序用户抱怨,我才知道。新的 Facebook API 需要一些必要的更改:
如果您查看最新的示例应用程序,Facebook 建议将这些更改放在您的 appDelegate 中。
    #import <FacebookSDK/FacebookSDK.h>

     - (BOOL)openSessionWithAllowLoginUI:(BOOL)allowLoginUI {
        NSArray *permissions = [NSArray arrayWithObjects:@"publish_actions", nil];
                return [FBSession openActiveSessionWithPermissions:permissions
                                                      allowLoginUI:allowLoginUI
                                                 completionHandler:^(FBSession *session, FBSessionState state, NSError *error) {
     if(state==513){
                   //facebook usage has been approved
                   }
                   }];
            }    

     - (BOOL)application:(UIApplication *)application
                        openURL:(NSURL *)url
              sourceApplication:(NSString *)sourceApplication
                     annotation:(id)annotation {
                // We need to handle URLs by passing them to FBSession in order for SSO authentication
                // to work.
                return [FBSession.activeSession handleOpenURL:url];
            }

无论您想在哪里发布帖子,请添加类似以下内容的信息:

    if(facebookEnabled==YES)
    {

     NSString *fbText=[NSString stringWithFormat:@"whatever text you want to post";

            [FBRequestConnection startForPostStatusUpdate:fbText
                                        completionHandler:^(FBRequestConnection *connection, id result, NSError *error) 
{
                                                                                    }];
    }

如果您有任何问题,请告诉我。希望能帮到您!


抱歉挖起这篇一年前的帖子,不过能否告诉我状态码513的确切含义是什么?在所有的 FBSessionState 状态中是否有一个定义好的位图值为513?谢谢! - Enzo
没问题。据我所记,这只是一段代码,根据用户是否批准、拒绝或出现错误而改变。那行代码甚至不必要,我在发布之前应该把它删除哈哈。不过你真的应该使用Social.Framework。而且自此帖子以来,fb sdk无疑已经多次更改。因此,那段代码现在可能已经不同了。但是使用Social.Framework比sdk容易得多。 - Tommy Devoy
谢谢您的回复!今天早些时候我正在使用FB SDK,似乎这个代码513仍然存在。当用户刚登录时的会话状态仍为513,但我找不到任何FBSessionState中具有该值的位掩码。但无论如何,感谢您解决了这个谜团 :) - Enzo

0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接