{"id":46758,"date":"2022-12-07T21:55:09","date_gmt":"2023-05-31T08:00:03","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/"},"modified":"2024-04-29T04:11:47","modified_gmt":"2024-04-28T20:11:47","slug":"46758-2","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/","title":{"rendered":""},"content":{"rendered":"<h1>\u6e96\u5099<\/h1>\n<p>GCP\u3067\u306eProject\u3068GCS &lt;- Kubernetes\u30af\u30e9\u30b9\u30bf\u304c\u3042\u308c\u3070\u3044\u3089\u306a\u3044<br \/>\nTwitter Developers\u30a2\u30ab\u30a6\u30f3\u30c8<\/p>\n<h1>Twitter\u306eCredentials\u306e\u6e96\u5099<\/h1>\n<p>https:\/\/developer.twitter.com\/en\/apps\/ \u3067<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">API key<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">API secret key<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">\n<li style=\"list-style-type: none;\">\n<ul class=\"post-ul\">Access token<\/ul>\n<\/li>\n<\/ul>\n<p>&nbsp;<\/p>\n<ul class=\"post-ul\">access token secret<\/ul>\n<p>\u3092\u6e96\u5099\u3002<\/p>\n<p>\u78ba\u8a8d\u65b9\u6cd5<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">tweepy<\/span>\r\n\r\n<span class=\"n\">auth<\/span> <span class=\"o\">=<\/span> <span class=\"n\">tweepy<\/span><span class=\"p\">.<\/span><span class=\"n\">OAuthHandler<\/span><span class=\"p\">(<\/span><span class=\"s\">'api key'<\/span><span class=\"p\">,<\/span> <span class=\"s\">'api secret key'<\/span><span class=\"p\">)<\/span>\r\n<span class=\"n\">auth<\/span><span class=\"p\">.<\/span><span class=\"n\">set_access_token<\/span><span class=\"p\">(<\/span><span class=\"s\">'access token'<\/span><span class=\"p\">,<\/span> <span class=\"s\">'access token secret'<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"n\">api<\/span> <span class=\"o\">=<\/span> <span class=\"n\">tweepy<\/span><span class=\"p\">.<\/span><span class=\"n\">API<\/span><span class=\"p\">(<\/span><span class=\"n\">auth<\/span><span class=\"p\">)<\/span>\r\n\r\n<span class=\"c1\">#override tweepy.StreamListener to add logic to on_status\r\n<\/span><span class=\"k\">class<\/span> <span class=\"nc\">MyStreamListener<\/span><span class=\"p\">(<\/span><span class=\"n\">tweepy<\/span><span class=\"p\">.<\/span><span class=\"n\">StreamListener<\/span><span class=\"p\">):<\/span>\r\n\r\n    <span class=\"k\">def<\/span> <span class=\"nf\">on_status<\/span><span class=\"p\">(<\/span><span class=\"bp\">self<\/span><span class=\"p\">,<\/span> <span class=\"n\">status<\/span><span class=\"p\">):<\/span>\r\n        <span class=\"k\">print<\/span><span class=\"p\">(<\/span><span class=\"n\">status<\/span><span class=\"p\">.<\/span><span class=\"n\">text<\/span><span class=\"p\">)<\/span>\r\n\r\n\r\n<span class=\"k\">def<\/span> <span class=\"nf\">show_my_stream<\/span><span class=\"p\">():<\/span>\r\n    <span class=\"n\">myStreamListener<\/span> <span class=\"o\">=<\/span> <span class=\"n\">MyStreamListener<\/span><span class=\"p\">()<\/span>\r\n    <span class=\"n\">myStream<\/span> <span class=\"o\">=<\/span> <span class=\"n\">tweepy<\/span><span class=\"p\">.<\/span><span class=\"n\">Stream<\/span><span class=\"p\">(<\/span><span class=\"n\">auth<\/span> <span class=\"o\">=<\/span> <span class=\"n\">api<\/span><span class=\"p\">.<\/span><span class=\"n\">auth<\/span><span class=\"p\">,<\/span> <span class=\"n\">listener<\/span><span class=\"o\">=<\/span><span class=\"n\">myStreamListener<\/span><span class=\"p\">)<\/span>\r\n\r\n    <span class=\"n\">myStream<\/span><span class=\"p\">.<\/span><span class=\"nb\">filter<\/span><span class=\"p\">(<\/span><span class=\"n\">track<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"s\">'corona'<\/span><span class=\"p\">])<\/span>\r\n\r\n<span class=\"n\">show_my_stream<\/span><span class=\"p\">()<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>python twitter_stream_consumer.py\r\nRT @dougmar_: the United States is the only country that still have a corona virus problem and Trump wants to focus on tik tok?\r\nRT @RPNishank2020: 13sept se accha to 3 may ko lete exam.\r\nAb kahoge ki kisko pata tha case badhege.\r\nTo tumhe officer kisne banaya\r\n21 din\u2026\r\nWalah.. tiwas seneng jenengku kesebut, ending2 kok marai drop ?\r\nSolo te falta el virus por que la corona ya la Tenes mi reina ?\r\nRT @inewsdotid: Bos WHO Tedros Adhanom Ghebreyesus mengingatkan pandemi virus corona merupakan krisis kesehatan global yang dampaknya bisa\u2026\r\nRT @AvinashBhondwe: Maha. CM visited Pune for supervising Corona Pandemic Control measures. We thought he will ...\r\n<\/code><\/pre>\n<p>\u51fa\u3066\u304d\u305f\u3089\u30aa\u30c3\u30b1\u30fc<\/p>\n<h1>Kubernetes Cluster\u3092\u5efa\u3066\u308b<\/h1>\n<p>(GKE\u3068\u304bEKS\u3068\u304b\u30ed\u30fc\u30ab\u30eb\u306eMinikube\u304bk3d\u306a\u3069\u3067)<\/p>\n<p>\u81ea\u5206\u306f\u4eca\u56deTerraform\u306eGKE\u3067\u9069\u5f53\u306b\u30af\u30e9\u30b9\u30bf\u7acb\u3066\u305f<\/p>\n<ul class=\"post-ul\">https:\/\/learn.hashicorp.com\/terraform\/kubernetes\/provision-gke-cluster<\/ul>\n<pre class=\"post-pre\"><code>terraform apply\r\n<\/code><\/pre>\n<p>kubeconfig\u3092\u66f4\u65b0<\/p>\n<pre class=\"post-pre\"><code>gcloud container clusters get-credentials --project smooth-ace-276614 --zone asia-northeast1-a my-gke-cluster\r\nFetching cluster endpoint and auth data.\r\nkubeconfig entry generated for my-gke-cluster.\r\n<\/code><\/pre>\n<h1>Strimzi\u3067Kafka\u30af\u30e9\u30b9\u30bf+ Kafka Connect\u3092\u5efa\u3066\u308b<\/h1>\n<p>Strimzi \u3068\u3044\u3046Kafka on Kubernetes in a few minutes\u3068\u3044\u3046\u306e\u3092\u4f7f\u3063\u3066\u904a\u3076<\/p>\n<p>(\u3042\u3068\u3067Operator + Kafka Cluster + Kafka Connect + Kafka Connector\u3092\u308f\u3051\u308b\u3088\u3066\u3044)<\/p>\n<pre class=\"post-pre\"><code><span class=\"na\">apiVersion<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kafka.strimzi.io\/v1alpha1<\/span>\r\n<span class=\"na\">kind<\/span><span class=\"pi\">:<\/span> <span class=\"s\">KafkaConnector<\/span>\r\n<span class=\"na\">metadata<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">name<\/span><span class=\"pi\">:<\/span> <span class=\"s\">twitter-connector<\/span>\r\n  <span class=\"na\">labels<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"s\">strimzi.io\/cluster<\/span><span class=\"pi\">:<\/span> <span class=\"s\">kafka-connect-source<\/span>\r\n<span class=\"na\">spec<\/span><span class=\"pi\">:<\/span>\r\n  <span class=\"na\">class<\/span><span class=\"pi\">:<\/span> <span class=\"s\">com.eneco.trading.kafka.connect.twitter.TwitterSourceConnector<\/span>\r\n  <span class=\"na\">tasksMax<\/span><span class=\"pi\">:<\/span> <span class=\"m\">2<\/span>\r\n  <span class=\"na\">config<\/span><span class=\"pi\">:<\/span>\r\n    <span class=\"na\">topic<\/span><span class=\"pi\">:<\/span> <span class=\"s\">twitter<\/span>\r\n    <span class=\"s\">track.terms<\/span><span class=\"pi\">:<\/span> <span class=\"s\">corona<\/span>\r\n    <span class=\"na\">language<\/span><span class=\"pi\">:<\/span> <span class=\"s\">en<\/span>\r\n    <span class=\"s\">value.converter<\/span><span class=\"pi\">:<\/span> <span class=\"s\">org.apache.kafka.connect.json.JsonConverter<\/span>\r\n    <span class=\"s\">key.converter<\/span><span class=\"pi\">:<\/span> <span class=\"s\">org.apache.kafka.connect.json.JsonConverter<\/span>\r\n    <span class=\"s\">twitter.token<\/span><span class=\"pi\">:<\/span> <span class=\"s\">xxxx<\/span>\r\n    <span class=\"s\">twitter.secret<\/span><span class=\"pi\">:<\/span> <span class=\"s\">xxxx<\/span>\r\n    <span class=\"s\">twitter.consumerkey<\/span><span class=\"pi\">:<\/span> <span class=\"s\">xxxx<\/span>\r\n    <span class=\"s\">twitter.consumersecret<\/span><span class=\"pi\">:<\/span> <span class=\"s\">xxxx<\/span>\r\n<\/code><\/pre>\n<pre class=\"post-pre\"><code>kubectl create namespace kafka-strimzi-18\r\nkubectl apply -k overlays\/kafka-strimzi-18\r\n<\/code><\/pre>\n<p>console-consumer\u3067consume\u3057\u3066\u307f\u308b\u3068\u3001Twitter\u304c\u3068\u308c\u3066\u308b!<\/p>\n<pre class=\"post-pre\"><code>kubectl run kafka-consumer -ti --image=strimzi\/kafka:0.18.0-kafka-2.5.0 --rm=true --restart=Never -- bin\/kafka-console-consumer.sh --bootstrap-server my-cluster-kafka-bootstrap:9092 --topic twitter --from-beginning\r\n{\"schema\":{\"type\":\"struct\",\"fields\":[{\"type\":\"int64\",\"optional\":false,\"field\":\"id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"created_at\"},{\"type\":\"struct\",\"fields\":[{\"type\":\"int64\",\"optional\":false,\"field\":\"id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"name\"},{\"type\":\"string\",\"optional\":true,\"field\":\"screen_name\"},{\"type\":\"string\",\"optional\":true,\"field\":\"location\"},{\"type\":\"boolean\",\"optional\":false,\"field\":\"verified\"},{\"type\":\"int32\",\"optional\":false,\"field\":\"friends_count\"},{\"type\":\"int32\",\"optional\":false,\"field\":\"followers_count\"},{\"type\":\"int32\",\"optional\":false,\"field\":\"statuses_count\"}],\"optional\":false,\"name\":\"com.eneco.trading.kafka.connect.twitter.User\",\"field\":\"user\"},{\"type\":\"string\",\"optional\":true,\"field\":\"text\"},{\"type\":\"string\",\"optional\":true,\"field\":\"lang\"},{\"type\":\"boolean\",\"optional\":false,\"field\":\"is_retweet\"},{\"type\":\"struct\",\"fields\":[{\"type\":\"array\",\"items\":{\"type\":\"struct\",\"fields\":[{\"type\":\"string\",\"optional\":true,\"field\":\"text\"}],\"optional\":false,\"name\":\"com.eneco.trading.kafka.connect.twitter.Hashtag\"},\"optional\":true,\"field\":\"hashtags\"},{\"type\":\"array\",\"items\":{\"type\":\"struct\",\"fields\":[{\"type\":\"string\",\"optional\":true,\"field\":\"display_url\"},{\"type\":\"string\",\"optional\":true,\"field\":\"expanded_url\"},{\"type\":\"int64\",\"optional\":false,\"field\":\"id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"type\"},{\"type\":\"string\",\"optional\":true,\"field\":\"url\"}],\"optional\":false,\"name\":\"com.eneco.trading.kafka.connect.twitter.Medium\"},\"optional\":true,\"field\":\"media\"},{\"type\":\"array\",\"items\":{\"type\":\"struct\",\"fields\":[{\"type\":\"string\",\"optional\":true,\"field\":\"display_url\"},{\"type\":\"string\",\"optional\":true,\"field\":\"expanded_url\"},{\"type\":\"string\",\"optional\":true,\"field\":\"url\"}],\"optional\":false,\"name\":\"com.eneco.trading.kafka.connect.twitter.Url\"},\"optional\":true,\"field\":\"urls\"},{\"type\":\"array\",\"items\":{\"type\":\"struct\",\"fields\":[{\"type\":\"int64\",\"optional\":false,\"field\":\"id\"},{\"type\":\"string\",\"optional\":true,\"field\":\"name\"},{\"type\":\"string\",\"optional\":true,\"field\":\"screen_name\"}],\"optional\":false,\"name\":\"com.eneco.trading.kafka.connect.twitter.UserMention\"},\"optional\":true,\"field\":\"user_mentions\"}],\"optional\":false,\"name\":\"com.eneco.trading.kafka.connect.twitter.Entities\",\"field\":\"entities\"}],\"optional\":false,\"name\":\"com.eneco.trading.kafka.connect.twitter.Tweet\"},\"payload\":{\"id\":1290101985916592128,\"created_at\":\"2020-08-03T01:47:37.000+0000\",\"user\":{\"id\":2901232483,\"name\":\"Keryi\\uD83E\\uDD8B\",\"screen_name\":\"keryikeryi\",\"location\":\"Seattle, WA\",\"verified\":false,\"friends_count\":153,\"followers_count\":222,\"statuses_count\":13157},\"text\":\"RT @LilNasX: corona is that nigga who already graduated but won\u2019t stop coming up to the school\",\"lang\":\"en\",\"is_retweet\":true,\"entities\":{\"hashtags\":[],\"media\":[],\"urls\":[],\"user_mentions\":[{\"id\":754006735468261376,\"name\":\"nope\",\"screen_name\":\"LilNasX\"}]}}}\r\n^CProcessed a total of 1056 messages\r\n<\/code><\/pre>\n<h1>\u30b3\u30fc\u30c9<\/h1>\n<h1>kafka-connect-twitter\u304c\u53e4\u3059\u304e\u554f\u984c<\/h1>\n<p>\u53e4\u304f\u3066\u3060\u308c\u3082\u30e1\u30f3\u30c6\u3057\u3066\u306a\u3044\u6a21\u69d8\u3060\u3063\u305f\u306e\u3067\u3001PR\u51fa\u3057\u3066\u3042\u3063\u305f\u3084\u3064\u3092\u4f7f\u3063\u3066Plugin\u3084\u3044\u305f\u304b\u3089\u3001\u5b8c\u5168\u306b\u91ce\u826f\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u6e96\u5099 GCP\u3067\u306eProject\u3068GCS &lt;- Kubernetes\u30af\u30e9\u30b9\u30bf\u304c\u3042\u308c\u3070\u3044\u3089\u306a\u3044 Twitte [&hellip;]<\/p>\n","protected":false},"author":3,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-46758","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>- Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:description\" content=\"\u6e96\u5099 GCP\u3067\u306eProject\u3068GCS &lt;- Kubernetes\u30af\u30e9\u30b9\u30bf\u304c\u3042\u308c\u3070\u3044\u3089\u306a\u3044 Twitte [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-05-31T08:00:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-28T20:11:47+00:00\" \/>\n<meta name=\"author\" content=\"\u97f5, \u79d1\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u97f5, \u79d1\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/\",\"name\":\"- Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-05-31T08:00:03+00:00\",\"dateModified\":\"2024-04-28T20:11:47+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e\",\"name\":\"\u97f5, \u79d1\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g\",\"caption\":\"\u97f5, \u79d1\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"- Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/","og_locale":"zh_CN","og_type":"article","og_description":"\u6e96\u5099 GCP\u3067\u306eProject\u3068GCS &lt;- Kubernetes\u30af\u30e9\u30b9\u30bf\u304c\u3042\u308c\u3070\u3044\u3089\u306a\u3044 Twitte [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-05-31T08:00:03+00:00","article_modified_time":"2024-04-28T20:11:47+00:00","author":"\u97f5, \u79d1","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u97f5, \u79d1","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/","name":"- Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-05-31T08:00:03+00:00","dateModified":"2024-04-28T20:11:47+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/"]}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/6530331a63adef3b3443a1fab53a0e6e","name":"\u97f5, \u79d1","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/429ccb39b3fff5188bc17986222cfb0936cbadb8cc933cff04ab5ca01bd30a08?s=96&d=mm&r=g","caption":"\u97f5, \u79d1"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunke\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/46758-2\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46758","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=46758"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46758\/revisions"}],"predecessor-version":[{"id":80884,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/46758\/revisions\/80884"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=46758"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=46758"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=46758"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}