我正在使用JSON Web Token将Zendesk单点登录功能实现到我的应用程序中.根据示例代码,我从我的代码隐藏调用ProcessRequest()函数.
我的代码是:
JWTLogin jwtLogin = new JWTLogin();
jwtLogin.ProcessRequest(HttpContext.Current.Request.QueryString["return_to"]);
Run Code Online (Sandbox Code Playgroud)
但是,我收到了一个错误
'Zendesk.JWTLogin.ProcessRequest(System.Web.HttpContext)'的最佳重载方法匹配有一些无效的参数
调用ProcessRequest()函数时,我将传递的"HttpContext"类型参数是什么?
在我的ZenDesk应用程序中,我:
使用普通的jQuery,你可以使用jQuery.when(deferreds)协调它,一旦步骤2中的所有请求完成,就触发第3步:
$.when($.ajax("/page1"), $.ajax("/page2"))
.done(function(page1result, page2result) {
// modify the ticket with the results
});
Run Code Online (Sandbox Code Playgroud)
this.$.when()没有运气.)我尝试使用 API 令牌连接到 Zendesk,但遇到以下问题:
{
"error": "Couldn't authenticate you"
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用Basic Auth(这是邮递员的屏幕截图)。
如果有人知道另一种方法,请与我分享!
有没有人知道维护的gem通过现有的Rails 3应用程序处理Zendesk API的用户身份验证?
我问了Zendesk IT并被发送到https://github.com/tobias/zendesk_remote_auth,但它看起来并不兼容rails 3并且自2009年以来一直没有更新.
我正在开发一个ZenDesk应用程序,它可以从后端系统中获取客户信息.我们需要使用OAuth 2基于浏览器的身份验证流程对该系统进行身份验证.
包含指向身份验证页面的链接没有问题,例如:
https://oauth2server.com/auth?
response_type=token&
client_id=CLIENT_ID&
redirect_uri=REDIRECT_URI&
scope=photos
Run Code Online (Sandbox Code Playgroud)
但是,一旦用户登录,OAuth服务器就想重定向客户端并包含授权令牌.所以REDIRECT_URI通常看起来像:
https://example.zendesk.com/agent/#token=ACCESS_TOKEN
Run Code Online (Sandbox Code Playgroud)
但是,ZenDesk已经使用片段标识符来指示要在页面上显示的内容:
https://example.zendesk.com/agent/#/dashboard
https://example.zendesk.com/agent/#/tickets/1234
Run Code Online (Sandbox Code Playgroud)
我的ZD应用程序只出现在某些页面上,所以我怎么能这两个
(我确实可以控制后端OAuth服务器,所以如果你想不出一个很好的干净方法来完成这个,那么OAuth服务器端的黑客建议也会被感激地接受.)
我一直在寻找一种方法来执行它
curl -u username:password -H "Content-Type: application/binary" \
--data-binary @file.dat -X POST \
"https://helpdesk.zendesk.com/api/v2/uploads.json?filename=myfile.dat&token={optional_token}"
Run Code Online (Sandbox Code Playgroud)
我试过用这个
[afnetworkmanager POST:url parameters:nil constructingBodyWithBlock:^(id<AFMultipartFormData> formData) {
[formData appendPartWithFileData:attachment.attachmentData name:@"image" fileName:attachment.fileName mimeType:attachment.mimeType];
} success:^(AFHTTPRequestOperation *operation, id responseObject) {
// TODO:
} failure:^(AFHTTPRequestOperation *operation, NSError *error) {
// TODO:
}];
Run Code Online (Sandbox Code Playgroud)
但它没有帮助.目前我收到一个错误说
{
> "Cache-Control" = "max-age=0, private, must-revalidate";
> Connection = "keep-alive";
> "Content-Length" = 345;
> Server = "nginx/1.4.2";
> Status = "201 Created";
> "X-Content-Type-Options" = nosniff;
> "X-Runtime" = "1.471856";
> "X-UA-Compatible" = "IE=Edge,chrome=1"; …Run Code Online (Sandbox Code Playgroud) 您如何搜索 ZenDesk 中是否存在用户?我尝试了以下方法,其中 mydomain 是我公司的域:
示例:https : //mydomain.zendesk.com/api/v2/users/search.json?query=myname@mydomain.com
这在他们的 API 中有记录:http : //developer.zendesk.com/documentation/rest_api/users.html#search-users
但是,我收到 404 {"error":"InvalidEndpoint","description":"Not found"} 作为响应。
我被要求处理外部REST API(实际上是Zendesk),其凭据需要格式化为{email}/token:{security_token}- 单个值而不是通常的用户名/密码对.我正在尝试使用Python requests模块执行此任务,因为它是Pythonic并且不会伤害我的大脑,但我不确定如何格式化身份验证凭据.Zendesk文档仅提供使用的访问示例curl,我不熟悉.
这是我目前的requests.auth.AuthBase子类:
class ZDTokenAuth(requests.auth.AuthBase):
def __init__(self,username,token):
self.username = username
self.token = token
def __call__(self,r):
auth_string = self.username + "/token:" + self.token
auth_string = auth_string.encode('utf-8')
r.headers['Authorization'] = base64.b64encode(auth_string)
return r
Run Code Online (Sandbox Code Playgroud)
我不确定是否需要各种编码,但这就是有人在github上做的事情(https://github.com/skipjac/Zendesk-python-api/blob/master/zendesk-ticket-delete.py)所以为什么不.我当然没有编码也尝试过 - 当然 - 结果相同.
这是我用来测试这个的类和方法:
class ZDStats(object):
api_base = "https://mycompany.zendesk.com/api/v2/"
def __init__(self,zd_auth):
self.zd_auth = zd_auth # this is assumed to be a ZDTokenAuth object
def testCredentials(self):
zd_users_url = self.api_base + "users.json"
zdreq = requests.get(zd_users_url, auth=self.zdauth)
return zdreq
Run Code Online (Sandbox Code Playgroud)
这称为: …
我正在尝试使用ZenDesk的API在我的网站上通过付款表单设置帐户.他们给出的示例代码是:
curl -v -u {email_address}:{password} https://{subdomain}.zendesk.com/api/v2/users.json \
-H "Content-Type: application/json" -X POST -d '{"user": {"name": "Roger Wilco", "email": "roge@example.org"}}'
Run Code Online (Sandbox Code Playgroud)
因为我需要包含PHP变量,所以我试图使用它:
$data = array("name" => $entry["1"], "email" => $entry["3"], "role" => "end-user");
$data_string = json_encode($data);
$ch = curl_init('https://xxxx.zendesk.com/api/v2/users.json');
curl_setopt($ch, CURLOPT_USERPWD, "xxxx@example.com:xxxx");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
'Content-Type: application/json',
'Content-Length: ' . strlen($data_string))
);
$result = curl_exec($ch);
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用.我的代码在复制第一个代码段的功能方面是否正确?
我在我的Android应用程序中使用zendesk sdk的外部活动
我只需使用以下代码打开它
Intent intent = new Intent(ContactUsActivity.this, ContactZendeskActivity.class);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
然后我遇到了以下崩溃
java.lang.RuntimeException: Unable to start activity ComponentInfo{com.forsale.forsale/com.zendesk.sdk.feedback.ui.ContactZendeskActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3149)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3248)
at android.app.ActivityThread.access$1000(ActivityThread.java:197)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1681)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6872)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
at android.support.v7.app.AppCompatDelegateImplV7.createSubDecor(AppCompatDelegateImplV7.java:331)
at android.support.v7.app.AppCompatDelegateImplV7.ensureSubDecor(AppCompatDelegateImplV7.java:300)
at android.support.v7.app.AppCompatDelegateImplV7.setContentView(AppCompatDelegateImplV7.java:264)
at android.support.v7.app.AppCompatActivity.setContentView(AppCompatActivity.java:130)
at com.zendesk.sdk.feedback.ui.ContactZendeskActivity.onCreate(ContactZendeskActivity.java:103)
at android.app.Activity.performCreate(Activity.java:6550) …Run Code Online (Sandbox Code Playgroud)