天天看點

QQ登入報錯:msg = "this api without user authorization";ret=100030;

需要實作使用者的增量授權:

實作以下代理方法即可正常授權登入:

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

- (BOOL)tencentNeedPerformIncrAuth:(TencentOAuth *)tencentOAuth withPermissions:(NSArray *)permissions

{

    // incrAuthWithPermissions是增量授權時需要調用的登入接口

    // permissions是需要增量授權的權限清單

    [tencentOAuth incrAuthWithPermissions:permissions];

    return NO; // 傳回NO表明不需要再回傳未授權API接口的原始請求結果;

    // 否則可以傳回YES

}

- (void)tencentDidUpdate:(TencentOAuth *)tencentOAuth

{

//    _labelTitle.text = @"增量授權完成";

    NSLog(@"增量授權完成");

    if (tencentOAuth.accessToken

        && 0 != [tencentOAuth.accessToken length])

    { // 在這裡第三方應用需要更新自己維護的token及有效期限等資訊

        // **務必在這裡檢查使用者的openid是否有變更,變更需重新拉取使用者的資料等資訊** _labelAccessToken.text = tencentOAuth.accessToken;

    }

    else

    {

        NSLog(@"增量授權不成功,沒有擷取accesstoken");

    }

}

- (void)tencentFailedUpdate:(UpdateFailType)reason

{

    switch (reason)

    {

        case kUpdateFailNetwork:

        {

//            _labelTitle.text=@"增量授權失敗,無網絡連接配接,請設定網絡";

            NSLog(@"增量授權失敗,無網絡連接配接,請設定網絡");

            break;

        }

        case kUpdateFailUserCancel:

        {

//            _labelTitle.text=@"增量授權失敗,使用者取消授權";

            NSLog(@"增量授權失敗,使用者取消授權");

            break;

        }

        case kUpdateFailUnknown:

        default:

        {

//            _labelTitle.text=@"增量授權失敗,未知錯誤";

            NSLog(@"增量授權失敗,未知錯誤");

            break;

        }

    }

}

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

繼續閱讀