Comments (8)
再帮我测试一下 1.2 Latest web API
能不能用吧,理论上也是可以的
这算是个 bug,所以 Issue 我先开着,等正式修复了再关
from nazurin.
1.2 Latest web API
也可以用。(未测试 NSFW 推文)
from nazurin.
X_FIX_LINK
用于接受 Fix Twitter Link 服务的链接,即遇到这些域,可以视为twitter.com
继续处理。也可以在程序中预置这些域,推荐参考 https://github.com/jonjomckay/fritter/blob/master/android/app/src/main/AndroidManifest.xml 内给出的域列表。
因为现在只是匹配 twitter.com,所以 fxtwitter.com 这类以 twitter.com 结尾的域名应该都能被匹配并当作 Twitter 处理。如果只是希望当作 Twitter 链接处理但继续使用官方 API 的话我考虑一下提供配置域名的方案,不过可能需要修改 Python 文件而不是配置环境变量。
NITTER_INST
用于配置 Nitter 实例的域。当NITTER_INST
未配置或为空 List 时,应当仅向twitter.com
发出请求。当NITTER_INST
已配置时,应当先请求twitter.com
,如失败再依次向NITTER_INST
中的实例请求,直到成功或没有可用的实例。
Nitter 实例貌似并没有提供 API 接口,所以不能当作 Twitter API 的备用选项,其自身也没有类似的接口,无法获取到跟官方 API 相似的推文详细数据,即使要支持也得当作新的图源处理。
Twitter (X) 仍对接口调用有限制,旧版本 Nazurin 会报错
Response Error: 0 Attempt to decode JSON with unexpected mimetype:
,新版本 Nazurin 会报错Twitter web API error:
。
一些第三方客户端已经引入了绕过 Twitter (X) 接口限制的方法,如 TheHCJ/Quacker 和 j-fbriere/squawker ,可以作为参考。
Nitter 和这类客户端应该依然使用的是官方 API,所以理论上无法绕过接口限制,但调用 API 的方法可以作为参考。不过我这边 Twitter 的功能依然正常,不知道你那边是什么问题,最好还是具体看一下原因。报错 Twitter web API error:
之后有详细的信息吗?
from nazurin.
报错
Twitter web API error:
之后有详细的信息吗?
Telegram 消息为 Twitter web API error:
后台 Log
INFO - nazurin.bot:123 - update:********* - Collection update: site=twitter, match=('**********************',)
INFO - nazurin.sites.twitter.api.web:114 - update:********* - Fetching tweet ********************** from web API
ERROR - nazurin.sites.twitter.api.web:146 - update:********* - Web API Error: 404,
冒号后的内容似乎没有在 Telegram 侧提示。这里提示 404,但推文确实存在。
Nitter 实例貌似并没有提供 API 接口,所以不能当作 Twitter API 的备用选项。
加入 Nitter 是为了 Fallback 保障可用性。但 Nitter 的确未提供 REST API (在 Roadmap 但已三年未解决),可能不太方便加入。是我考虑不周,请见谅。
Nitter 和这类客户端应该依然使用的是官方 API,所以理论上无法绕过接口限制,但调用 API 的方法可以作为参考。不过我这边 Twitter 的功能依然正常,不知道你那边是什么问题,最好还是具体看一下原因。
在两种网络环境下打开同一个链接 twitter.com/[handle]/status/[id]
:
Note
环境1 (称之为“脏IP环境”)
- 完整浏览器: 可以打开,有时无法加载回复。
- Nazurin:
Web API Error: 404
。 - Fritter:
Unable to load this tweet
,附带有额外信息{ "statusCode": 404, "reasonPhrase": "Not Found", "content": "" }
- Squawker: 正常加载(含回复)。
环境2 (称之为“干净IP环境”)
- 完整浏览器: 可以打开。
- Nazurin: 正常工作。
- Fritter: 正常加载。
- Squawker: 正常加载。
由于“脏IP环境”中,Fritter 和 Nazurin 出现了相同的错误 404
,而 Fritter 的 Fork 可以正常加载。
我并不了解编程,所以我在这里提出一个浅薄的观点: Fritter 和 Nazurin 调用 Twitter API 的方式会受到 Twitter 的风控,而 Squawker 调用 Twitter API 的方式一定程度上缓解(绕过)了这种风控。
非常感谢您对这个 issue 的关注。
from nazurin.
由于“脏IP环境”中,Fritter 和 Nazurin 出现了相同的错误 404,而 Fritter 的 Fork 可以正常加载。
是所有的推文都会出现问题还是特定推文才会?如果是特定推文的话,该推文有没有某种特殊性,例如 NSFW、作者限制可见性?
方便的话可否提供具体例子?如果不方便公开的话可以使用 PGP 加密,将 Recipient 设置为我 (yyoung
)。
之后我会看一下 Squawker 调用 Twitter API 的方式,但如果没有错误复现方法的话恐怕难以测试。
from nazurin.
是所有的推文都会出现问题还是特定推文才会?如果是特定推文的话,该推文有没有某种特殊性,例如 NSFW、作者限制可见性?
所有推文。
以 40原 老师的推文为例: https://twitter.com/40hara/status/1283175216773046272
INFO - nazurin.middleware:25 - update:********* - Message ****: https://twitter.com/40hara/status/1283175216773046272
INFO - nazurin.bot:123 - update:********* - Collection update: site=twitter, match=('1283175216773046272',)
INFO - nazurin.sites.twitter.api.web:114 - update:********* - Fetching tweet 1283175216773046272 from web API
INFO - aiohttp.web_log:206 - - 127.0.0.1 "POST /*********:******************************* HTTP/1.1" 200 152 "-" "-"
ERROR - nazurin.sites.twitter.api.web:146 - update:********* - Web API Error: 404,
from nazurin.
我大概知道原因了,应该是你没有设置你自己的 auth token,目前的 Twitter API 和 Authorization Token 需要登录才能使用,而 Fritter 使用的 Authorization Token 不需要登录(但是这样无法浏览敏感推文)。我在 fix/twitter-api 分支放了新的代码,你可以试一下,如果还是不行的话代码里还有几个可切换的选项(94行和 130行),可以试试。
from nazurin.
我在 fix/twitter-api 分支放了新的代码,你可以试一下,如果还是不行的话代码里还有几个可切换的选项(94行和 130行),可以试试。
1.3 Fritter
后的 API 地址可以使用,非常感谢 o((>ω< ))o 。
希望在 文档的 Twitter 章节 (Src) 添加相应说明。
from nazurin.
Related Issues (20)
- 存储时根据来源用文件夹进行分类 HOT 4
- Got `KeyError: 0` for Gelbooru Collection HOT 1
- Heroku 部署后请求均报 404 HOT 5
- Send a message when a request is blocked HOT 1
- 添加对 lofter 的支持
- 多存储报错 HOT 1
- Heroku starts to remove free plan.
- DeviantArt API now requires CSRF token
- cdn.syndication.twimg.com returns 404 page. HOT 2
- Weibo cannot obtain the correct original image file HOT 1
- TimeoutError while fetching Pixiv images HOT 3
- Weibo 手机客户端生成的链接无法识别
- Duplicate folders are created in Google Drive
- Feature request: clean up the temp folder automatically HOT 1
- Twitter NSFW推文資料無法獲取
- 把mega网盘作为存储仓库时报错 HOT 2
- Onedrive作为存储报错 Cannot create a file without content HOT 13
- Twitter链接报错“Response Error: 0 Attempt to decode JSON with unexpected mimetype:” HOT 5
- B站获取动态信息的 API 已失效 HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from nazurin.