繁体   English   中英

Ruby on Rails,从Graphql提取数据并将其发布到Facebook-messenger

[英]Ruby on Rails, taking data from Graphql and posting on it to Facebook-messenger

  $message_text = message.text
  module STAPI
    HTTP = GraphQL::Client::HTTP.new("API_ADDRESS")
    Schema = GraphQL::Client.load_schema(HTTP)
    Client = GraphQL::Client.new(schema: Schema,execute: HTTP)
  end

  module Sticker
    Query = STAPI::Client.parse <<-'GRAPHQL'
      {
        stickers(query: "#{$message_text}", first: 21, after: "") {
          edges {
            node {
              fileUrl(fullWatermarked: true)
            }
          }
        }
      }
    GRAPHQL
  end

  result = STAPI::Client.query(Sticker::Query)

首先,这是一个Messenger机器人,通过Messenger机器人,我可以接收用户输入,然后在数据库中搜索输入,然后发布与输入有关的内容。

因此,在代码中我无法搜索,因为我认为query: "#{$message_text}"已损坏。

我接受用户输入message.text 该输入类似于此“ Hello”(带有')。 但是我需要query: "#{$message_text}"这样的“ Hello”(带有“) query: "#{$message_text}"部分。如何给messenger.text查询这样的“ Hello”

我相信您已经知道如何根据其他问题中的内容进行这项工作。 对于其他面临相同问题的人,请看一下variables 您的示例将如下所示:

$message_text = message.text
module STAPI
  HTTP = GraphQL::Client::HTTP.new("API_ADDRESS")
  Schema = GraphQL::Client.load_schema(HTTP)
  Client = GraphQL::Client.new(schema: Schema,execute: HTTP)
end

module Sticker
  Query = STAPI::Client.parse <<-'GRAPHQL'
    query Q($message: String) {
      stickers(query: $message, first: 21, after: "") {
        edges {
          node {
            fileUrl(fullWatermarked: true)
          }
        }
      }
    }
  GRAPHQL
end

result = STAPI::Client.query(Sticker::Query, variables: {message_text: $message_text})

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM