微博开发,用 AFN 抓取数据时挂了? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
kobe1941
V2EX    iDev

微博开发,用 AFN 抓取数据时挂了?

  •  
  •   kobe1941 2014-04-29 20:53:15 +08:00 7045 次点击
    这是一个创建于 4233 天前的主题,其中的信息可能已经有所发展或是发生改变。
    做一个类新浪微博的客户端,抓取数据时,可以获取用户的个人信息,但是在抓取关注的人的微博时返回fail,把错误打印出来,字面上看是权限不够,但是个人觉得应该不会,这是微博公开的接口,求分析。
    以下是代码部分
    NSString *str = [NSString stringWithFormat:@"https://api.weibo.com/2/statuses/friends_timeline.json?access_token=%@",[AccountTool sharedAccountTool].currentAccount.accessToken];

    NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:str]];

    AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {

    NSLog(@"成功 %@",JSON);

    } failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error, id JSON) {

    NSLog(@"失败--%@--%@--%@",request,response,error);

    }];

    [operation start];
    11 条回复    2014-08-21 11:27:08 +08:00
    kobe1941
        1
    kobe1941  
    OP
       2014-04-29 20:56:25 +08:00
    以下是打印的错误信息,重点在于"error":"Insufficient app permissions!","error_code":10014,权限不够


    失败--<NSURLRequest: 0x8c31b10> { URL: https://api.weibo.com/2/statuses/friends_timeline.json?access_token=2.00vWf4GEsE94CD263c7e0837S1eYtC }--<NSHTTPURLResponse: 0x8cd6230> { URL: https://api.weibo.com/2/statuses/friends_timeline.json?access_token=2.00vWf4GEsE94CD263c7e0837S1eYtC } { status code: 403, headers {

    "Api-Server-IP" = "10.75.5.57";

    COnnection= "keep-alive";

    "Content-Encoding" = gzip;

    "Content-Type" = "application/json;charset=";

    Date = "Tue, 29 Apr 2014 12:36:37 GMT";

    Server = "nginx/1.2.0";

    "Transfer-Encoding" = Identity;

    Vary = "Accept-Encoding";

    } }--Error Domain=AFNetworkingErrorDomain Code=-1011 "Expected status code in (200-299), got 403" UserInfo=0x8fd2200 {NSLocalizedRecoverySuggestion={"error":"Insufficient app permissions!","error_code":10014,"request":"/2/statuses/friends_timeline.json"}, AFNetworkingOperatiOnFailingURLRequestErrorKey=<NSURLRequest: 0x8c31b10> { URL: https://api.weibo.com/2/statuses/friends_timeline.json?access_token=2.00vWf4GEsE94CD263c7e0837S1eYtC }, NSErrorFailingURLKey=https://api.weibo.com/2/statuses/friends_timeline.json?access_token=2.00vWf4GEsE94CD263c7e0837S1eYtC, NSLocalizedDescription=Expected status code in (200-299), got 403, AFNetworkingOperatiOnFailingURLResponseErrorKey=<NSHTTPURLResponse: 0x8cd6230> { URL: https://api.weibo.com/2/statuses/friends_timeline.json?access_token=2.00vWf4GEsE94CD263c7e0837S1eYtC } { status code: 403, headers {

    "Api-Server-IP" = "10.75.5.57";

    COnnection= "keep-alive";

    "Content-Encoding" = gzip;

    "Content-Type" = "application/json;charset=gb212";

    Date = "Tue, 29 Apr 2014 12:36:37 GMT";

    Server = "nginx/1.2.0";

    "Transfer-Encoding" = Identity;

    Vary = "Accept-Encoding";

    } }}
    kobe1941
        2
    kobe1941  
    OP
       2014-04-29 20:59:49 +08:00
    另外比较奇葩的是,我的AFN文件夹拉入工程后,不添加system,security,mobile这几个框架竟然编译可以通过(AFN 的.m文件已加入编译),奇葩啊,会不会是这里出了问题呢?
    txx
        3
    txx  
       2014-04-29 21:46:52 +08:00   1
    1: 何不用cocoapod 呢....
    2: 何抓包分析而是要打log呢...
    3: Google "weibo 10014"
    ccbikai
        4
    ccbikai  
    PRO
       2014-04-30 00:26:14 +08:00 via Android   1
    非第三方客户端类appkey无权查看他人微博,开放平台文档看一下
    kobe1941
        5
    kobe1941  
    OP
       2014-04-30 12:53:14 +08:00
    @txx 1.cocoapod 不懂啊,AFN拿来就能用,我已经拿到微博账号的个人信息了,但是拿微博数据时出了问题不知道怎么回事,
    2.用AFN 发送请求,没有返回数据,于是就打印下错误信息
    3.谢谢,我给微博开放平台发私信了,叫我申请高级权限,但明明我调用的接口是普通接口。。。郁闷
    lloydsheng
        6
    lloydsheng  
       2014-04-30 14:23:04 +08:00
    @kobe1941 关于cocoapod,你可以看看我这个帖子
    kobe1941
        7
    kobe1941  
    OP
       2014-04-30 14:43:43 +08:00
    @ccbikai 我目前可以查看已登陆用户的个人信息和关注的人、粉丝,这些都在user栏目下,但是抓取微博数据(在statuses栏目下)全部失败,我找新浪问去,谢谢!
    ccbikai
        8
    ccbikai  
    PRO
       2014-04-30 19:19:21 +08:00   1
    kobe1941
        9
    kobe1941  
    OP
       2014-04-30 22:33:50 +08:00
    @ccbikai 当前授权就是指登陆用户,我在测试时都是用授权过的账号登陆,然后通过发送包含appkey和response_type=token等请求拿到access_token和uid,再根据access_token和uid来抓取数据的,目前可以访问当前登陆账号个人信息,但是没法得到微博的数据,开始还以为friends_timeline的请求都要转为home_line,后来试了一圈,statuses下的接口(微博接口)都不能访问。希望帮忙分析下,谢谢!

    新浪的文档说明:
    获取自己的微博,参数uid与screen_name可以不填,则自动获取当前登录用户的微博;
    指定获取他人的微博,参数uid与screen_name二者必选其一,且只能选其一;
    接口升级后:uid与screen_name只能为当前授权用户,第三方微博类客户端不受影响;
    读取当前授权用户所有关注人最新微博列表,请使用:获取当前授权用户及其所关注用户的最新微博接口(statuses/home_timeline);
    kobe1941
        10
    kobe1941  
    OP
       2014-05-03 22:53:37 +08:00
    @txx
    @ccbikai 感谢各位回复,问题已经解决,新浪更新了接口没更新文档,客户端只能用先获取code,再用code换取access_token,新创建的应用这样子做授权没问题,接口都可以用.旧应用可以直接response_type=token,但是能不能读取微博接口就看运气了,
    deter3
        11
    deter3  
       2014-08-21 11:27:08 +08:00 via iPad
    @kobe1941 请问这个项目还在做吗? 目前想用的功能。。。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5041 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 36ms UTC 09:35 PVG 17:35 LAX 01:35 JFK 04:35
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86