데이터 베이스 MySQL 튜토리얼 请教服务器迁移到国内后 twitter oauth 的 proxy 问题

请教服务器迁移到国内后 twitter oauth 的 proxy 问题

Jun 07, 2016 pm 04:31 PM
oauth pro twitter 국내의 섬기는 사람

如题,过去网站在linode上,现准备迁移到国内的UCloud,网站支持twitter oauth方式登录并且需要使用一些api,所以为了保证迁回国内后这部分功能可用,需要架设twitter api proxy 环境:debian 7 + ruby 1.9.3 + openssl 1.0.1e,已关闭防火墙 我尝试过了两个

如题,过去网站在linode上,现准备迁移到国内的UCloud,网站支持twitter oauth方式登录并且需要使用一些api,所以为了保证迁回国内后这部分功能可用,需要架设twitter api proxy
环境:debian 7 + ruby 1.9.3 + openssl 1.0.1e,已关闭防火墙
我尝试过了两个方案
1 利用GoAgent 3.0.1,然后设置omniauth的proxy到GoAgent端口,开发机osx 10.8正常,但是在ucloud上GoAgent日志

INFO - [Jun 28 02:48:04] 127.0.0.1:45539 "AGENT CONNECT api.twitter.com:443 HTTP/1.1" - -
ERROR - [Jun 28 02:48:04] ssl.wrap_socket(self.connection=) failed: [Errno 1] _ssl.c:504: error:14094418:SSL routines:SSL3_READ_BYTES:tlsv1 alert unknown ca
로그인 후 복사

rails日志

(twitter) Request phase initiated.
(twitter) Authentication failure! service_unavailable: OpenSSL::SSL::SSLError, SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed
로그인 후 복사

GoAgent开启关闭https mode结果均一样
使用curl测试curl https://api.twitter.com -x 127.0.0.1:8087测试,同样得到unknown ca的错误
但是curl https://api.twitter.com -x 127.0.0.1:8087 --cacert /usr/local/goagent/local/CA.crt 则能获取到html
但是配置GoAgent的时候本身就会自动导入ca,经检查确实已经导入了证书到/etc/ssl/certs,并且开发机不需要指定ca也能正常得到结果
测试数次,结果比较稳定

2 在linode的机器上用nginx来转发api实现proxy,nginx配置文件如下

server {
    listen          80;
    server_name     kexue.knewone.com;
    access_log      /var/log/nginx/twitter.access_log;
    location / {
        proxy_pass              https://api.twitter.com/;
        proxy_redirect          off;
        proxy_buffering off;
        proxy_cache off;
        #proxy_set_header        X-Real-IP       $remote_addr;
        #proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        #proxy_set_header       cookie          $http_cookie;
        proxy_pass_header       User-Agent;
        proxy_pass_header       Authorization;
        proxy_pass_header       Content-Type;
        proxy_pass_header       WWW-Authenticate;
        proxy_pass_header       Host;
    }
}
로그인 후 복사

可以确定的是,请求内容完整的发送到proxy上了,但返回401 unauthorized
rails日志

Started GET "/users/auth/twitter" for 127.0.0.1 at 2013-06-28 03:17:32 +0800
OAuth::Unauthorized (401 Unauthorized):
  oauth (0.4.7) lib/oauth/consumer.rb:216:in `token_request'
  oauth (0.4.7) lib/oauth/consumer.rb:136:in `get_request_token'
  omniauth-oauth (1.0.1) lib/omniauth/strategies/oauth.rb:29:in `request_phase'
  omniauth-twitter (1.0.0) lib/omniauth/strategies/twitter.rb:63:in `request_phase'
  omniauth (1.1.4) lib/omniauth/strategy.rb:214:in `request_call'
  omniauth (1.1.4) lib/omniauth/strategy.rb:181:in `call!'
  omniauth (1.1.4) lib/omniauth/strategy.rb:164:in `call'
  omniauth (1.1.4) lib/omniauth/strategy.rb:184:in `call!'
  omniauth (1.1.4) lib/omniauth/strategy.rb:164:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/error_collector.rb:12:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/agent_hooks.rb:22:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/browser_monitoring.rb:16:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/developer_mode.rb:28:in `call'
  mongoid (3.1.4) lib/rack/mongoid/middleware/identity_map.rb:34:in `block in call'
  mongoid (3.1.4) lib/mongoid/unit_of_work.rb:39:in `unit_of_work'
  mongoid (3.1.4) lib/rack/mongoid/middleware/identity_map.rb:34:in `call'
  warden (1.2.1) lib/warden/manager.rb:35:in `block in call'
  warden (1.2.1) lib/warden/manager.rb:34:in `catch'
  warden (1.2.1) lib/warden/manager.rb:34:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
  rack (1.4.5) lib/rack/etag.rb:23:in `call'
  rack (1.4.5) lib/rack/conditionalget.rb:25:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/head.rb:14:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/flash.rb:242:in `call'
  rack (1.4.5) lib/rack/session/abstract/id.rb:210:in `context'
  rack (1.4.5) lib/rack/session/abstract/id.rb:205:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/cookies.rb:341:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
  activesupport (3.2.13) lib/active_support/callbacks.rb:405:in `_run__53745951561906208__call__2319728286447542957__callbacks'
  activesupport (3.2.13) lib/active_support/callbacks.rb:405:in `__run_callback'
  activesupport (3.2.13) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
  activesupport (3.2.13) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (3.2.13) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/reloader.rb:65:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
  airbrake (3.1.12) lib/airbrake/rails/middleware.rb:13:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.13) lib/rails/rack/logger.rb:32:in `call_app'
  railties (3.2.13) lib/rails/rack/logger.rb:16:in `block in call'
  activesupport (3.2.13) lib/active_support/tagged_logging.rb:22:in `tagged'
  railties (3.2.13) lib/rails/rack/logger.rb:16:in `call'
  quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
  actionpack (3.2.13) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.5) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.13) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.5) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/static.rb:63:in `call'
  airbrake (3.1.12) lib/airbrake/user_informer.rb:16:in `_call'
  airbrake (3.1.12) lib/airbrake/user_informer.rb:12:in `call'
  railties (3.2.13) lib/rails/engine.rb:479:in `call'
  railties (3.2.13) lib/rails/application.rb:223:in `call'
  railties (3.2.13) lib/rails/railtie/configurable.rb:30:in `method_missing'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:145:in `handle'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:99:in `rescue in block (2 levels) in start'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:96:in `block (2 levels) in start'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:86:in `each'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:86:in `block in start'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:66:in `loop'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:66:in `start'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:13:in `run'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/bin/nack_worker:4:in `'
로그인 후 복사

另外有篇 文章 里的提示尝试使用OAuth 2方式认证,nginx配置如下

server {
  access_log      /var/log/nginx/proxy.access_log;
  # If your want to secure your proxy with SSL, replace with the appropriate SSL configuration.
  listen 80;
  # Replace this with the name of the domain you wish to run your proxy on.
  server_name kexue.knewone.com;
  # The Twitter proxy code!
  location / {
    proxy_buffering off;
    proxy_cache off;
    proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;
    # Hide Twitter's own caching headers - we're applying our own.
    proxy_hide_header X-Accel-Expires;
    proxy_hide_header Expires;
    proxy_hide_header Cache-Control;
    proxy_hide_header pragma;
    proxy_hide_header set-cookie;
    proxy_pass_header Content-type;
    proxy_pass_header WWW-Authenticate;
    # Set the correct host name to connect to the Twitter API.
    proxy_set_header Host api.twitter.com;
    # Add authentication headers - edit and add in your own bearer token.
    proxy_set_header Authorization "Bearer 哔~~~";
    # Actually proxy the request to Twitter API!
    proxy_pass https://api.twitter.com;
  }
로그인 후 복사

返回403 Forbidden
rails日志

Started GET "/users/auth/twitter" for 127.0.0.1 at 2013-06-28 03:14:45 +0800
OAuth::Unauthorized (403 Forbidden):
  oauth (0.4.7) lib/oauth/consumer.rb:216:in `token_request'
  oauth (0.4.7) lib/oauth/consumer.rb:136:in `get_request_token'
  omniauth-oauth (1.0.1) lib/omniauth/strategies/oauth.rb:29:in `request_phase'
  omniauth-twitter (1.0.0) lib/omniauth/strategies/twitter.rb:63:in `request_phase'
  omniauth (1.1.4) lib/omniauth/strategy.rb:214:in `request_call'
  omniauth (1.1.4) lib/omniauth/strategy.rb:181:in `call!'
  omniauth (1.1.4) lib/omniauth/strategy.rb:164:in `call'
  omniauth (1.1.4) lib/omniauth/strategy.rb:184:in `call!'
  omniauth (1.1.4) lib/omniauth/strategy.rb:164:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/error_collector.rb:12:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/agent_hooks.rb:22:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/browser_monitoring.rb:16:in `call'
  newrelic_rpm (3.6.4.122) lib/new_relic/rack/developer_mode.rb:28:in `call'
  mongoid (3.1.4) lib/rack/mongoid/middleware/identity_map.rb:34:in `block in call'
  mongoid (3.1.4) lib/mongoid/unit_of_work.rb:39:in `unit_of_work'
  mongoid (3.1.4) lib/rack/mongoid/middleware/identity_map.rb:34:in `call'
  warden (1.2.1) lib/warden/manager.rb:35:in `block in call'
  warden (1.2.1) lib/warden/manager.rb:34:in `catch'
  warden (1.2.1) lib/warden/manager.rb:34:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
  rack (1.4.5) lib/rack/etag.rb:23:in `call'
  rack (1.4.5) lib/rack/conditionalget.rb:25:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/head.rb:14:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/params_parser.rb:21:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/flash.rb:242:in `call'
  rack (1.4.5) lib/rack/session/abstract/id.rb:210:in `context'
  rack (1.4.5) lib/rack/session/abstract/id.rb:205:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/cookies.rb:341:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
  activesupport (3.2.13) lib/active_support/callbacks.rb:405:in `_run__53745951561906208__call__2319728286447542957__callbacks'
  activesupport (3.2.13) lib/active_support/callbacks.rb:405:in `__run_callback'
  activesupport (3.2.13) lib/active_support/callbacks.rb:385:in `_run_call_callbacks'
  activesupport (3.2.13) lib/active_support/callbacks.rb:81:in `run_callbacks'
  actionpack (3.2.13) lib/action_dispatch/middleware/callbacks.rb:27:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/reloader.rb:65:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/remote_ip.rb:31:in `call'
  airbrake (3.1.12) lib/airbrake/rails/middleware.rb:13:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/debug_exceptions.rb:16:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/show_exceptions.rb:56:in `call'
  railties (3.2.13) lib/rails/rack/logger.rb:32:in `call_app'
  railties (3.2.13) lib/rails/rack/logger.rb:16:in `block in call'
  activesupport (3.2.13) lib/active_support/tagged_logging.rb:22:in `tagged'
  railties (3.2.13) lib/rails/rack/logger.rb:16:in `call'
  quiet_assets (1.0.2) lib/quiet_assets.rb:18:in `call_with_quiet_assets'
  actionpack (3.2.13) lib/action_dispatch/middleware/request_id.rb:22:in `call'
  rack (1.4.5) lib/rack/methodoverride.rb:21:in `call'
  rack (1.4.5) lib/rack/runtime.rb:17:in `call'
  activesupport (3.2.13) lib/active_support/cache/strategy/local_cache.rb:72:in `call'
  rack (1.4.5) lib/rack/lock.rb:15:in `call'
  actionpack (3.2.13) lib/action_dispatch/middleware/static.rb:63:in `call'
  airbrake (3.1.12) lib/airbrake/user_informer.rb:16:in `_call'
  airbrake (3.1.12) lib/airbrake/user_informer.rb:12:in `call'
  railties (3.2.13) lib/rails/engine.rb:479:in `call'
  railties (3.2.13) lib/rails/application.rb:223:in `call'
  railties (3.2.13) lib/rails/railtie/configurable.rb:30:in `method_missing'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:145:in `handle'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:99:in `rescue in block (2 levels) in start'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:96:in `block (2 levels) in start'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:86:in `each'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:86:in `block in start'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:66:in `loop'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:66:in `start'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/lib/nack/server.rb:13:in `run'
  /Users/jasl/Library/Application Support/Pow/Versions/0.4.1/node_modules/nack/bin/nack_worker:4:in `'
로그인 후 복사

另外,我大概看过一些twiiter api proxy工具,都比较老,还在使用即将作废的1.0版api,所以就不考虑了

请教:

  • 有什么好的国内主机使用twitter oauth api的方案?
  • 我感觉我想到的两个方案理论上都是可行的,但哪里出问题或者我没考虑到导致失败呢?
  • 有什么办法截取代理服务器出去的包?tcpdump nc都是针对socket的,对于只想观察request来说 非常重,而且难用。。。

感谢!

@luikore @hooopo @yedingding @quakewang @bhuztez @lgn21st

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

블록 체인 데이터 분석 도구는 무엇입니까? 블록 체인 데이터 분석 도구는 무엇입니까? Feb 21, 2025 pm 10:24 PM

블록 체인 기술의 빠른 개발은 신뢰할 수 있고 효율적인 분석 도구의 필요성을 가져 왔습니다. 이러한 도구는 잠재력을 더 잘 이해하고 활용하기 위해 블록 체인 거래에서 귀중한 통찰력을 추출하는 데 필수적입니다. 이 기사는 기능, 장점 및 제한 사항을 포함하여 시장에 나와있는 주요 블록 체인 데이터 분석 도구 중 일부를 살펴볼 것입니다. 이러한 도구를 이해함으로써 사용자는 블록 체인 기술의 가능성을 극대화하기 위해 필요한 통찰력을 얻을 수 있습니다.

20배 줌 기능을 갖춘 카메라 3대, Honor가 선정한 Xiaopai Smart Camera Pro 혁신 20배 줌 기능을 갖춘 카메라 3대, Honor가 선정한 Xiaopai Smart Camera Pro 혁신 Aug 23, 2024 pm 09:44 PM

집에 카메라를 설치하셨나요? 최근 몇 년간 가정용 카메라 제품이 갑자기 인기를 끌었습니다. 주변 친구들에게 물어보니 집집마다 하나씩 있고, 한 개 이상 있는 집도 있다고 하더군요. 하지만 제품이 인기를 끌면서 사용 중 불만이 제기되기도 했습니다. 예를 들어 동시에 한 곳만 볼 수 있고, 다른 곳을 보려면 팬/틸트를 조정하고 카메라를 앞뒤로 회전시켜야 볼 수 있는 사각지대와 시간차가 있습니다. 또는 집의 특정 위치를 자세히 살펴보고 싶을 때 사진이 흐릿하고 전혀 볼 수 없는 경우 등... 경험이 크게 저하됩니다. Honor Select와 Xiaopai Technology는 "3개의 렌즈와 듀얼 이미지"를 갖춘 Honor Select Xiaopai Smart Camera Pro를 공동 출시했습니다. 업계 및 사용자의 문제점에 대한 새로운 솔루션 제공

Samsung S25 Ultra 세부 정보 노출: iPhone 16 Pro Max와 너비는 같지만 화면은 더 커졌습니다. Samsung S25 Ultra 세부 정보 노출: iPhone 16 Pro Max와 너비는 같지만 화면은 더 커졌습니다. Aug 23, 2024 pm 09:33 PM

22일 뉴스에 따르면 삼성의 차세대 플래그십 휴대폰 S25 울트라 출시가 다가오면서 점점 더 자세한 내용이 드러나기 시작했다. 유명 블로거 @ibinguniverse는 오늘 Weibo에서 S25 Ultra의 더 많은 사양을 공개했습니다. 가장 눈길을 끄는 것은 본체 너비가 Apple iPhone 16 Pro Max와 동일하며 둘 다 77.6mm라는 것입니다. 1. 삼성의 프레임 디자인 최적화 덕분에 S25 Ultra의 화면 크기는 iPhone 16 Pro Max와 동일한 너비를 유지하면서 6.86인치로 커져 사용자에게 더욱 몰입감 있는 시각적 경험을 제공합니다. 해당 블로거는 댓글 영역에서 S25 Ultra의 검은색 가장자리가 iPhone 16 Pro Max&

AMD EPYC 4004 시리즈 프로세서를 탑재한 ASUS, 다양한 서버 및 워크스테이션 제품 출시 AMD EPYC 4004 시리즈 프로세서를 탑재한 ASUS, 다양한 서버 및 워크스테이션 제품 출시 Jul 23, 2024 pm 09:34 PM

7월 23일 이 웹사이트의 뉴스에 따르면 ASUS는 AMD EPYC 4004 시리즈 프로세서로 구동되는 다양한 서버 및 워크스테이션 수준 제품을 출시했습니다. 이 사이트의 참고 사항: AMD는 지난 5월 AM5 플랫폼과 Zen4 아키텍처 EPYC 4004 시리즈 프로세서를 출시하여 최대 16코어 3DV 캐시 사양을 제공했습니다. ASUSProER100AB6 서버 ASUSProER100AB6은 EPYC Xiaolong 4004 시리즈 프로세서가 장착된 1U 랙 장착형 서버 제품으로 IDC 및 중소기업의 요구 사항에 적합합니다. ASUSExpertCenterProET500AB6 워크스테이션 ASUSExpertCenterProET500AB6은

천 위안 기계를 선택하는 방법은 무엇입니까? 배터리 수명이 매우 좋습니다. vivo Y37 Pro에는 6000mAh가 탑재되어 있습니다. 천 위안 기계를 선택하는 방법은 무엇입니까? 배터리 수명이 매우 좋습니다. vivo Y37 Pro에는 6000mAh가 탑재되어 있습니다. Aug 27, 2024 pm 03:31 PM

오늘날의 1000위안 휴대폰 시장에서는 배터리 수명과 외관이 많은 소비자들의 관심사가 되었습니다. 결국, 대부분의 사람들에게 휴대폰은 일상적인 사용의 기본적인 요구 사항을 충족해야 할 뿐만 아니라 장기간 사용에 대처할 수 있는 오래 지속되는 성능을 갖추어야 하며 동시에 보기 좋은 외관 디자인이 포인트를 더할 수 있습니다. 사용 경험이 거의 없습니다. vivo Y37Pro는 배터리 수명과 외관 측면에서 뛰어난 성능을 발휘하는 천 위안짜리 휴대폰입니다. 외관 vivoY37Pro는 심플하고 세련된 외관을 가지고 있습니다. 후면 패널: 지문이 남지 않는 특수 처리 처리. 중간 프레임: 금속 질감이 가득합니다. 색상: 살구색 바다, 어두운 밤, 하늘에 떠 있는 도시. 후면 카메라 모듈의 레이아웃: 후면 패널의 왼쪽 상단 모서리. SIM 카드 슬롯: 동체의 왼쪽. 볼륨 버튼 및 전원 버튼: 동체의 오른쪽. 인터페이스

새로운 vivo Y300 Pro가 곧 출시될 예정이라고 합니다! 6500mAh 대용량 배터리 탑재 새로운 vivo Y300 Pro가 곧 출시될 예정이라고 합니다! 6500mAh 대용량 배터리 탑재 Aug 14, 2024 pm 09:57 PM

CNMO에 따르면, vivo Y300Pro는 곧 출시될 가능성이 높습니다. 새 휴대폰의 하이라이트 중 하나는 대용량 6500mAh 배터리가 탑재된다는 점입니다. 한 디지털 블로거는 vivo Y300 Pro에 6500mAh 초대용량 배터리가 탑재될 것이라는 vivo Y200 관련 소식을 전했습니다. 하반기 많은 휴대폰에 6000mAh급 대용량 배터리가 탑재될 것이라는 점을 고려하면, Y300Pro에 6500mAh 배터리가 탑재되는 것은 놀라운 일이 아니다. 다른 블로거의 최근 폭로가 이 뉴스의 신뢰성을 확인하는 것 같다는 점은 언급할 가치가 있습니다. vivo 미드레인지 시리즈 모델에는 6500mAh 대용량 배터리가 탑재된 것으로 확인되었습니다. fenye1. 일부 네티즌들은 앞서 언급한 블로거 아래에서 다음과 같이 한탄했습니다. 마침내 그들은 파란색 공장 재료를 얻었습니다. 블로거는 이렇게 대답했습니다.

샴페인 골드가 돌아왔습니다! iPhone 16 Pro의 새로운 색상 공개 샴페인 골드가 돌아왔습니다! iPhone 16 Pro의 새로운 색상 공개 Aug 15, 2024 am 11:19 AM

최근 아이폰 16 프로의 샴페인 골드 렌더링이 인터넷에 공개된 바 있는데, 해당 렌더링을 보면 아이폰 16의 새로운 컬러 배색이 아이폰 7의 로즈 골드 버전과 아이폰 7의 중간 수준인 다크 골드 스타일을 선보이고 있음을 알 수 있다. 아이폰8 골드 버전. Apple은 역사상 수많은 골드 iPhone을 출시했습니다. iPhone 5s의 샴페인 골드 색상은 출시되자마자 큰 성공을 거두었으며 "금재 거물"이라는 별명을 얻었습니다. 이후 애플은 아이폰6s 시리즈에 로즈골드 색상을 출시해 전체적인 디자인과 느낌이 핑크와 유사해 시장에서도 호평을 받았다. iPhone 16 Pro의 골드 버전은 새 휴대폰에 복고풍과 패셔너블한 분위기를 더할 것으로 예상됩니다.

Deepseek의 공식 입구는 어디에 있습니까? 2025 년 최신 방문 가이드 Deepseek의 공식 입구는 어디에 있습니까? 2025 년 최신 방문 가이드 Feb 19, 2025 pm 05:03 PM

학술 데이터베이스, 뉴스 웹 사이트 및 소셜 미디어의 광범위한 결과를 제공하는 포괄적 인 검색 엔진 인 DeepSeek. DeepSeek의 공식 웹 사이트 https://www.deepseek.com/을 방문하여 계정을 등록하고 로그인 한 다음 검색을 시작할 수 있습니다. 특정 키워드, 정확한 문구 또는 고급 검색 옵션을 사용하여 검색을 좁히고 가장 관련성이 높은 결과를 얻으십시오.

See all articles