小编rhi*_*use的帖子

使用Python访问Lovoo API

我希望能够使用lovoo API,但不知道如何开始.在运行Charles代理并查看流量后,我得出以下结论:

一旦用户通过应用程序(iPhone)登录,就会发送第一个GETto https://api.lovoo.com/oauth/requestToken?:

    GET /oauth/requestToken? HTTP/1.1
Host    api.lovoo.com
User-Agent  LOVOO/612 (iPhone; iOS 10.2; Scale/3.00)
kissapi-app-idfv    1EC7A8E5-DF16-4E14-8EC9-98DD4772F903
tz  Europe/xxx
kissapi-device-model    iPhone 6s Plus
kissapi-app-version 3.17.0
kissapi-new-oauth   1
kissapi-device  iphone
kissapi-app lovoo
wifi    true
kissapi-adv-id  00000000-0000-0000-0000-000000000000
Connection  keep-alive
kissapi-app-id  7F947A460DAFCA88556B2F35A6D78A3E
Authorization   OAuth oauth_callback="oob", oauth_consumer_key="an.email%40gmail.com", oauth_nonce="A32CCA91-FB7A-4AA3-8314-0A9A6E67045E", oauth_signature="Sq8KTg%2FhVIGBaWgWXprPluczOs4%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1487017515", oauth_version="1.0"
Accept-Language en-CH;q=1, de-CH;q=0.9
kissapi-adv-on  false
kissapi-version 1.20.0
kissapi-update-user-hash    6ea2bd15ea41d0dc8c2615589e2d52ec
Accept  */*
kissapi-device-os   10.2
Accept-Encoding gzip, deflate
kissapi-sync-enabled    1
Run Code Online (Sandbox Code Playgroud)

这也给出了以下标记: oauth_token=44d83e8ef50f&oauth_token_secret=37998f6c6ef2e618

这是跟其他GEThttps://api.lovoo.com/oauth/accessToken?:

GET /oauth/accessToken? HTTP/1.1
Host …
Run Code Online (Sandbox Code Playgroud)

oauth python-3.x python-requests

27
推荐指数
1
解决办法
1663
查看次数

通过同一连接访问多个 gRPC 服务

我正在运行一个grpc服务器侦听localhost:6000,公开 2 个grpc服务:RegisterSubscriberServiceServerRegisterDropperServiceServer. 由于这两个服务都可以从 访问localhost:6000,我只想从存根拨打这个地址。

服务器看起来像这样:

func main() {
    grpcServer := grpc.NewServer()
    pb.RegisterSubscriberServiceServer(grpcServer, &subscriberServer{})
    pb.RegisterDropperServiceServer(grpcServer, &dropperServer{})

    l, err := net.Listen("tcp", ":6000")
    if err != nil {
        log.Fatalf("failed to listen: %v", err)
    }

    log.Println("Listening on tcp://localhost:6000")
    grpcServer.Serve(l)
}
Run Code Online (Sandbox Code Playgroud)

为什么我需要为每个grpc服务拨不同的插座?

type DropperRPC struct {
    conn      *grpc.ClientConn
    client pb.DropperServiceClient
    chunkSize int
}

type SubscriberRPC struct {
    conn      *grpc.ClientConn
    client pb.SubscriberServiceClient
    chunkSize int
}

func NewSubscriber() (c SubscriberRPC, err error) …
Run Code Online (Sandbox Code Playgroud)

go grpc

8
推荐指数
1
解决办法
8156
查看次数

为 protobuf 消息字段定义自定义 go struct 标签

我是新手grpc并且一直试图json从网络服务器获取响应。然后存根可以jsonrpc服务器请求。

在我的.proto文件中,我创建了一个消息类型:

message Post {
    int64 number = 1;
    string now = 2;
    string name = 3;
}
Run Code Online (Sandbox Code Playgroud)

但我无法编组该number字段,因为protoc生成pb.go带有number标记的结构文件:

{
        "no": "23",
        "now": "12:06:46",
        "name": "bob"
}
Run Code Online (Sandbox Code Playgroud)

如何强制Message使用消息字段的小写名称以外的标签“转换”?如使用json标签no,即使在字段名称Messagenumber

go protocol-buffers grpc

7
推荐指数
2
解决办法
1万
查看次数

struct上的匿名函数

是否可以使用匿名函数更新结构中的值?在python中,我将使用lambda执行以下操作:

inspect = lambda id: '/api/{}/inspect'.format(id)
Run Code Online (Sandbox Code Playgroud)

哪个会将动态id值放在字符串中.

Go我尝试像他这样的东西:

type Info struct {
    Inspect string
}

func Assign() Info  {
    i := &Info{}
    i.Inspect = return func(id) {return fmt.Sprintf("/api/%s/inspect", id)}
    return *i
}
Run Code Online (Sandbox Code Playgroud)

但我想更新这样的值:

temp := Assign()
tempID := temp.Inspect("test")
fmt.Println("/api/test/inspect")
Run Code Online (Sandbox Code Playgroud)

go

5
推荐指数
1
解决办法
2689
查看次数

带有嵌套模板的 Golang 意外 EOF

我正在尝试在页面上显示切片的内容。显示带有静态文本的模板有效。一旦我尝试覆盖发送到的切片ExTpl(),我就会收到 EOF 错误。

type Miner struct {
    IP          string `bson:"ip"`
    Port        int32  `bson:"port"`
    FailCount   int    `bson:"failcount"`
}

type (
    MinerController struct {
        Session *mgo.Session
    }
)

func ExTpl(w http.ResponseWriter, data []Miner) {
    t, _ := template.ParseFiles("templates/header.tmpl", "templates/footer.tmpl", "templates/data.tmpl")
    t.ExecuteTemplate(w, "data", data)
}

func FilterMiners(c *mgo.Collection, key, value string, limit int) ([]Miner, int, error) {
    var results []Miner
    query := bson.M{key: value}
    if len(key) == 0 {
        query = nil
    }

    err := c.Find(query).Limit(limit).All(&results)
    if err != nil { …
Run Code Online (Sandbox Code Playgroud)

templates go go-templates

5
推荐指数
1
解决办法
6857
查看次数

Powershell表示使用get-filehash时找不到路径

首先,我的代码:

gci -Path C:\ -Recurse | select FullName | %{Get-FileHash $_}

gci -Path C:\ -Recurse | select FullName输出错误,但输出正确的路径.

我在这做错了什么?

powershell

2
推荐指数
1
解决办法
577
查看次数

主要任务中的Ansible子任务

我想在主要任务中有2个"子任务",但由于某种原因我得到语法错误.

在我的/etc/ansible目录中,我必须遵循以下结构:

playbooks/
         set_users.yml
roles/
     users/
          tasks/
               main.yml
               create_admin.yml
               update_root.yml
          vars/
               main.yml
Run Code Online (Sandbox Code Playgroud)

create_admin.yml文件中我有以下内容:

---
- name: Create srv_admin user
  user: name=srv_admin password="{{ admin_password }}" groups=wheel shell=/bin/bash
Run Code Online (Sandbox Code Playgroud)

并在update_root.yml:

---
- name Update root password
  user: name=root password="{{ root_password }}"
Run Code Online (Sandbox Code Playgroud)

然后我将这些任务包含在main.yml:

---
- name: Modify users
  tasks:
    - include: update_root.yml
    - include: create_admin.yml
Run Code Online (Sandbox Code Playgroud)

vars/main.yml包含了我的密码:

---
admin_password: SHA512HASH
root_password: SHA512HAS
Run Code Online (Sandbox Code Playgroud)

现在将它们整合在一起playbooks/set_users.yml:

---
- name: create user
  hosts: servers
  remote_user: root
  roles: …
Run Code Online (Sandbox Code Playgroud)

ansible

2
推荐指数
1
解决办法
5956
查看次数