您的凭据不允许访问此资源 Twitter API 错误

2023-12-02

我正在研究 Twitter api,一些 api 得到了响应。但statuses/home_timeline.jsonapi 和其他 api 没有得到响应。

出现错误:

{"errors":[{"code":220,"message":"Your credentials do not allow access to this resource."}]}

我已成功获取访问令牌并将该访问令牌用于statuses/home_timeline.json以及其他一些 api。但这些都出现了以上错误。我已经用我的帐户登录了。

我发现了很多网址,但我没有从这些网址中得到答案。

My 访问令牌代码是:

//Get twitter access token
func getAccessToken() {

    //RFC encoding of ConsumerKey and ConsumerSecretKey
    let encodedConsumerKeyString:String = "f4k***********0".addingPercentEncoding(withAllowedCharacters: CharacterSet.urlHostAllowed)!
    let encodedConsumerSecretKeyString:String = "OD**************ln".addingPercentEncoding(withAllowedCharacters: CharacterSet.urlHostAllowed)!
    print(encodedConsumerKeyString)
    print(encodedConsumerSecretKeyString)
    //Combine both encodedConsumerKeyString & encodedConsumerSecretKeyString with " : "
    let combinedString = encodedConsumerKeyString+":"+encodedConsumerSecretKeyString
    print(combinedString)
    //Base64 encoding
    let data = combinedString.data(using: .utf8)
    let encodingString = "Basic "+(data?.base64EncodedString())!
    print(encodingString)
    //Create URL request
    var request = URLRequest(url: URL(string: "https://api.twitter.com/oauth2/token")!)  //oauth/access_token   oauth2/token
    request.httpMethod = "POST"
    request.setValue(encodingString, forHTTPHeaderField: "Authorization")
    request.setValue("application/x-www-form-urlencoded;charset=UTF-8", forHTTPHeaderField: "Content-Type")
    let bodyData = "grant_type=client_credentials".data(using: .utf8)!
    request.setValue("\(bodyData.count)", forHTTPHeaderField: "Content-Length")
    request.httpBody = bodyData

    let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { // check for fundamental networking error
        print("error=\(String(describing: error))")
        return
        }

//            let responseString = String(data: data, encoding: .utf8)
//            let dictionary = data
//            print("dictionary = \(dictionary)")
//            print("responseString = \(String(describing: responseString!))")

        if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
            print("statusCode should be 200, but is \(httpStatus.statusCode)")
            print("response = \(String(describing: response))")
        }

        do {
            let response = try JSONSerialization.jsonObject(with: data, options: []) as! Dictionary<String, Any>
            print("Access Token response : \(response)")
//                print(response["access_token"]!)
//                self.accessToken = response["access_token"] as! String
            if let token = response["access_token"] {
                self.accessToken = token as! String
            }

        } catch let error as NSError {
            print(error)
        }
    }

    task.resume()
}

Twitter signing code :

//Twitter signin
@IBAction func onClickTwitterSignin(_ sender: UIButton) {

    //Login and get session
    TWTRTwitter.sharedInstance().logIn { (session, error) in

        if (session != nil) {
            //Read data
            let name = session?.userName ?? ""
            print(name)
            print(session?.userID  ?? "")
            print(session?.authToken  ?? "")
            print(session?.authTokenSecret  ?? "")

 //                self.loadFollowers(userid: session?.userID ?? "")

 //                let userid = session?.userID ?? ""
 //                let screenName = session?.userName ?? ""
 //                if userid != "" && screenName != "" {



             self.getStatusesUserTimeline(accessToken:self.accessToken)


 //                }

            //Get user email id
            let client = TWTRAPIClient.withCurrentUser()
            client.requestEmail { email, error in
                if (email != nil) {
                    let recivedEmailID = email ?? ""
                    print(recivedEmailID)
                } else {
                    print("error--: \(String(describing: error?.localizedDescription))");
                }
            }
            //Get user profile image url's and screen name
            let twitterClient = TWTRAPIClient(userID: session?.userID)
            twitterClient.loadUser(withID: session?.userID ?? "") { (user, error) in
                print(user?.profileImageURL ?? "")
                print(user?.profileImageLargeURL ?? "")
                print(user?.screenName ?? "")
            }



            let storyboard = self.storyboard?.instantiateViewController(withIdentifier: "SVC") as! SecondViewController
            self.navigationController?.pushViewController(storyboard, animated: true)
        } else {
            print("error: \(String(describing: error?.localizedDescription))");
        }
    }

}

获取 twitter statuses/home_timeline.json :(我在登录成功后调用此函数)

func getStatusesUserTimeline(accessToken:String) {

    let userId = "10************56"
    let twitterClient = TWTRAPIClient(userID: userId)
    twitterClient.loadUser(withID: userId) { (user, error) in
        print(userId)
        print(user ?? "Empty user")
        if user != nil {


            //Get users timeline tweets
            var request = URLRequest(url: URL(string: "https://api.twitter.com/1.1/statuses/home_timeline.json?")!)                


            request.httpMethod = "GET"
            request.setValue("Bearer "+accessToken, forHTTPHeaderField: "Authorization")
            print(request)

            let task = URLSession.shared.dataTask(with: request) { data, response, error in guard let data = data, error == nil else { // check for fundamental networking error
                print("error=\(String(describing: error))")
                return
                }


                if let httpStatus = response as? HTTPURLResponse, httpStatus.statusCode != 200 { // check for http errors
                    print("statusCode should be 200, but is \(httpStatus.statusCode)")
                    print("response = \(String(describing: response))")
                }

                do {
                    let response = try JSONSerialization.jsonObject(with: data, options: []) as! Dictionary<String,Any>
                    print(response)
 //                        print((response["statuses"] as! Array<Any>).count)

                } catch let error as NSError {
                    print(error)
                }
            }

            task.resume()

        } else {
            print(error?.localizedDescription as Any)
        }
    }

}

检查权限,如下图所示。转到开发者帐户 -> 仪表板 -> 选择您的应用程序 -> 权限。

您使用的是仅应用程序身份验证还是仅具有只读权限的应用程序?

请确保您的应用程序有读写访问或读取、写入和直接消息 access

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

您的凭据不允许访问此资源 Twitter API 错误 的相关文章

  • 如何观察UserDefaults的变化?

    我有一个 ObservedObject在我看来 struct HomeView View ObservedObject var station Station var body some View Text self station sta
  • 开发者可以在 Windows 应用程序中使用 iCloud 吗?

    开发人员可以使用 Apple 的 iCloud API 在 Mac OS X 和 iOS 上的不同版本的应用程序之间同步应用程序数据 如果开发人员拥有 Windows 版本的应用程序 该版本是否也可以使用 iCloud 将应用程序数据与 M
  • NSUserDefaults 多久同步一次?

    的文档NSUserDefaults说synchronise方法被定期调用 但没有提及频率 10分钟的谷歌搜索没有发现任何信息 发生的频率是多少synchronise方法调用 这是一个未公开的实现细节 可能甚至不是一个恒定的时间间隔 但是 您
  • 在 hooks 文件夹中使用节点脚本时,cordova 插件安装问题

    Cordova 3 4 hooks 未在 iOS 中正确安装提到的插件 我正在添加install plugins js进入文件夹project project root hooks after platform add其中有以下代码 usr
  • SwiftUI:动态“列表”中的“切换”在重用时会破坏其布局?

    我试图展现一种动态List行包含Toggle元素 这Toggle最初布局正确 但是当它们滚动进和滚出视图时 即单元格重用时 它们的布局会中断 最小示例代码 import SwiftUI struct SwitchList View var
  • 我们能否检测用户是否通过主页按钮或锁定按钮离开而没有监听 darwin 通知?

    我最近向应用程序商店提交了一个新的二进制文件并将其发送以供审核 但它立即被拒绝并显示以下消息 不支持的操作 不允许应用程序监听设备锁定通知 经过一番挖掘后 我发现我们无法使用 com apple springboard lockstate
  • 如何重新定位或移动 Google Maps SDK 上的当前位置按钮?

    如何将 Objective C 中的当前位置按钮移至我的偏好 现在 我已启用它 但底角有东西挡住了它 Thanks 您可以使用 padding 将按钮向上移动 self mapView padding UIEdgeInsets top 0
  • 如何在iOS的Delphi程序中使用IPv6协议

    我尝试在我的移动程序中使用 IPv6 协议 我的服务器位于 NAT 后面的 LAN 内 在服务器上我使用IP端口3000 我已经组织了从路由器端口 45500 到服务器端口 3000 的虚拟服务器 端口转发 在服务器上 我运行 ipconf
  • 从 iOS 13 开始安排 iOS 后台任务

    我正在实现用于更新数据的BackgroundTasks 框架 但我遇到了以下问题 无法计划刷新App 错误域 BGTaskSchedulerErrorDomain代码 1 空 无法安排数据提取 Error Domain BGTaskSche
  • 查找已用应用程序名称的捆绑包/开发人员

    我正在尝试将应用程序上传到应用程序商店并收到以下错误 很容易理解 The App Name you have entered has already been used 该应用程序不在 iTunes 上 有什么方法可以找出谁拥有该应用程序或
  • 在 swift 中将简单字符串转换为 JSON 字符串

    我知道有一个同标题的问题here https stackoverflow com questions 30825755 convert string to json string in swift 但在那个问题中 他试图将字典转换为 JSO
  • 沙盒尝试恢复消耗性 IAP

    我一直在尝试在 iOS 上测试一些消耗性 IAP 但遇到了一个奇怪的错误 弹出一条警报 其中包含以下文本 此应用内购买已被购买 它将恢复为 自由的 环境 沙盒 我已经检查过 并且确定我的 IAP 可以在 iTunesConnect 中使用
  • Xcode 10 Beta 5 — clang:错误:链接器命令失败,退出代码为 1

    有人可以帮我吗 我的项目一切正常 但更新到 Xcode10 Beta5 后 尝试在 iPhone 上运行该应用程序时出现此错误 然而模拟器可以工作 请帮助我 我已经对这个问题进行了网络搜索并发现this https stackoverflo
  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择
  • ios - 在哪里放置 s.static_framework = true

    我在 CocoaPods 中的级别为 0 当我使用pod install有一个错误说 The Pods App target has transitive dependencies that include static framework
  • 将 UIButton 中的图像缩放到 AspectFit?

    我想将图像添加到 UIButton 并且还想缩放图像以适合 UIButton 使图像变小 请告诉我该怎么做 这是我尝试过的 但它不起作用 将图像添加到按钮并使用setContentMode self itemImageButton setI
  • iOS 视图控制器内存在被关闭后未释放

    当用户单击按钮时 它会显示一个带有两个视图控制器的新选项卡栏视图控制器 我是这样做的 ACLevelDownloadController dvc ACLevelDownloadController alloc initWithNibName
  • ios 导航 堆栈操作

    我在尝试从 iOS 应用程序操作导航堆栈时遇到问题 或者至少是由于这种操纵而产生的行为 我的情况 我有 3 个 ViewController 控制器a显示多个级别 控制器 b 是游戏视图 控制器 c 是某种分数 显然 我将在控制器 a 中选
  • ios - Gamekit 的 GKOctree 未找到元素

    我正在尝试使用GKOctree https developer apple com documentation gameplaykit gkoctree用于高效检索 3D 空间中的对象 然而 以下代码似乎没有按预期工作 import Gam
  • 设置/覆盖 UICollectionView 中单元格之间的填充

    我有一个 UICollectionView 但在获取单元格之间的填充时遇到了问题 理论上 我应该能够将屏幕除以 4 并且我可以获得包含 4 个图像的单元格大小 完美地占据屏幕宽度 但是 它选择不这样做 相反 它会创建 3 个具有巨大填充的图

随机推荐

  • heroku db:pull 无法连接到我在 ubuntu 中的数据库

    所以我最近将ubuntu更新到11 04 然后又降级回11 04 因为我讨厌unity 不管怎样 在我重新安装 11 40 后 我必须克隆所有旧的 Heroku 应用程序并尝试运行heroku db pull拉取数据库并将其导入到我的 my
  • 如何从 iPhone 中的 Web 服务获取数据?

    我必须开发一个应用程序 其中包括以下内容 gt 通过 iPhone 向 Web 服务发出请求 gt 从网络服务获取数据 我从未使用过 Web 服务来开发 iPhone 应用程序 但我知道什么是网络服务 The example of web
  • Git 正在转向新的哈希算法 SHA-256,但为什么 git 社区选择 SHA-256

    我刚刚从这件事中学到了HN postgit 正在转向新的哈希算法 从SHA 1 to SHA 256 我想知道是什么让SHA 256最适合 git 的用例 是否有任何 许多强有力的技术原因或者是否有可能SHA 256人气是一个强大的因素吗
  • Android Studio:无法完成 gradle 执行,原因为空

    当我尝试运行 Android 模拟器时 出现以下错误屏幕 当我导出 apk 时也会发生同样的情况 当我转到保存 apk 的目录时 apk 文件不存在 谢谢你 克里斯托夫 我遇到了同样的问题 通过执行以下步骤可以解决此问题 Go to 文件
  • 如何获取 Chrome 扩展程序子文件夹中的文件名列表?

    我想知道是否可以获取 Chrome 扩展程序的子文件夹中所有文件的文件名列表 谢谢你 Use the chrome runtime getPackageDirectoryEntry方法得到一个DirectoryEntry对于 Chrome
  • 将自定义角色分配给 Azure Active Directory 系统托管标识

    为了在 API 之间建立 Azure AD 系统托管标识 我在应用程序清单中为目标 API 定义了一个自定义角色 appRoles allowedMemberTypes Application description Allow the a
  • 在 C# 中测试/注入私有字段的良好做法是什么

    如果这是重复的 我很抱歉 我被赋予了为该方法添加一些覆盖范围的任务 并被告知要模拟私有的List
  • PHP 中的数字格式

    我想将带小数位的数字格式化为不带小数位的格式 例如 146 5 到 146500000 我如何在 PHP 中实现这一点 谢谢 乘以100000 没那么容易
  • 在 Excel 中导入 CSV 美国格式的数字并进行本地化?

    我有一个包含以下值的 csv 文件 1488201602 653 8 304700E 04 3 079498E 03 1488201603 107 8 677357E 04 2 856719E 03 1488201821 012 7 071
  • 另一个线性渐变内的线性渐变

    我正在尝试在另一个线性渐变中创建线性渐变 这可能吗 下面的例子 background linear gradient to right color1 50 color2 0 颜色 1 是 background linear gradient
  • ARM Aarch64 中的 PUSH {lr} 和 POP {lr}

    等效指令是什么PUSH lr and POP lr 在ARM Aarch64指令集中 Is STR X30 SP 8 正确的 您能解释一下维护堆栈对齐的概念吗 我对 ARMv8 比较陌生 所以请原谅 如果您要求 C 编译器从源代码生成汇编语
  • WIX 自定义操作:使用 dllimport

    我有一个 WiX 安装程序和自定义操作项目 我添加了 C 库作为自定义操作项目的参考 此 C dll 使用 DllImport 到一个 C dll 安装时收到错误 无法加载 DLLmycpp dll 未找到指定的模块 我添加了mycpp d
  • 为什么Fortran可以分配这么大的数组?

    我编写了一段科学代码 像往常一样 这归结为计算代数特征值方程中的系数 计算这些系数需要对多维数组进行积分 这会迅速大幅增加内存使用量 一旦计算出矩阵系数 就可以释放原始的预积分多维数组 并由智能求解器接管 因此内存使用不再是大问题 正如您所
  • 指定绘图上多条线的颜色[重复]

    这个问题在这里已经有答案了 Pandas 数据框分组图 我有一个与上述问题类似的数据框 但它有大约 8 个股票代码 我定义了一个名为 颜色 的颜色列表 与股票代码相对应 但是当我这样做时 df groupby ticker adj clos
  • 使用map-reduce构建分布式KD树

    我正在尝试使用map reduce 构建分布式KD 树 分布式KD树的描述可以在这里找到Dkd Tree I have a feature vector of images having dimension 20 I have to bui
  • 如何在powershell中的正则表达式中插入变量

    我试图查看文件中是否存在某些输入的条目 因此我使用正则表达式来查询每一行 cat file where match script fileName 其中 fileName 是其他地方定义的一些输入 如何更改正则表达式以插入变量而不是匹配 f
  • 空手道:[主要] INFO com.intuit.karate - karate.env 系统属性为:null [重复]

    这个问题在这里已经有答案了 在尝试使用生成的令牌执行下一个场景时 在令牌身份验证流程之后出现错误 主要 INFO com intuit karate 空手道系统属性为 null 我使用了以下代码 特征文件 Feature Login Tok
  • Python项目结构和相关导入

    我是Python新手 我在谷歌上搜索了很多 并阅读了一些有关相对导入等的文章 尽管事实上我无法让它工作 请考虑我的以下项目结构 Project docs log prev src a py tests tests1 b py tests2
  • 直接从无头图像字节数组创建缩略图

    我的应用程序一次显示大量图像缩略图 目前 我将所有全尺寸图像保留在内存中 并简单地在 UI 中缩放图像以创建缩略图 但是 我宁愿只在内存中保留小缩略图 并且仅在必要时加载全尺寸图像 我认为这很容易 但与仅在 UI 中缩放全尺寸图像相比 我生
  • 您的凭据不允许访问此资源 Twitter API 错误

    我正在研究 Twitter api 一些 api 得到了响应 但statuses home timeline jsonapi 和其他 api 没有得到响应 出现错误 errors code 220 message Your credenti